代码改变世界

真正页面无刷新调用数据原理js无刷新

2009-08-25 11:10  周国选  阅读(5107)  评论(0编辑  收藏

Iframe的实现可能是最常看到的。很多论坛和聊天室的无刷新效果都是用这个实现的。但是这个方法还是可以在IE的状态栏上看到下载数据的进度条,而且有刷新数据时电脑发出的声音,本质上不能属于真正的无刷新技术。
    XMLHTTP
相信也有很多人用过,但是出于对浏览器的兼容性要求,还有很多网友的浏览器屏蔽了对控件的支持,使得XMLHTTP在客户端的应用显得比较苍白无力了。一般都是在服务器端应用得比较多。
   
现在开始说说我自己的思路吧:
   
刚开始我也是用Iframe来实现的,但是一听到那个讨厌的刷新声,心里就不是滋味,于是我想,既然Iframe可以通过改变它的src属性,那JS也可以啊,而且JS请求跟Iframe的请求方式是不一样的,至少在刷新效果是不一样的。所以我就开始从这个念头入手。现在给出代码让大家参考。

程序代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>真正页面无刷新调用数据原理</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <script type="text/javascript">

    function GetData(url)

    {

      document.getElementById("DataLoad").src=url;   

    }

    </script>

    <script id="DataLoad" type="text/javascript" defer="defer"></script>

</head>

<body>

    <input type="button" name="Submit" value="请求" onclick="GetData('index.aspx')" id="Button1"/>

</body>

</html>

 

Index.aspx.cs

        protected void Page_Load(object sender, EventArgs e)

        {

            //要处理的cs代码

            Response.Write("");//输出空

        }
这个是主页面的代码, index.aspx这一个页面就是请求的页面,在这里可以包含很多的逻辑,跟调用普通的JS文件一样,这些具体只要知道javascript的应该都不难理解。