日期:2010-06-21  浏览次数:20861 次

  前几天老板要求实现页面局步刷新的功能  在网上查了很久。 发现,  我们在做网页的局部动态刷新的功能的时候常用的方法,是iframe和 FrameSet  ,不过这两种方法也有他的弊端。那就是页面的大小不好控制的问题。于是我想到了用javascript 中的 xmlhttp对象来动态的获取其他页面的信息作为本页面的一部分的方法。于是按照这个方法做了一个,效果还不错。下面把主要思路写下来 ,供大家参考!

  我得思路是这样的,在主页面上编写一段javascript的小函数,执行的功能是利用xmlhttp对象根据所给的参数获得另一个页面中的数据页面,然后动态的显示在主页面中。看上去好像是没有什么问题,但是在用户交互上就不是那么好控制,因为在主页面上显示的是纯的html的代码,但是子页面上的交互功能却不好实现了。于是我就想到了在子页面上来调用主页面的javascript代码,同时给他相应的参数。这样,既实现了动态局部刷新,又保证了子页面的用户交互性。

  主要代码如下 :

  在主页面中用这段javascript 代码获取子页面的代码

<script language=javascript>
   var oDiv
   var xh
   function getPageDataFromUrl(url,div)
   {
   oDiv = div
   oDiv.innerHTML = "正在加载数据,请稍侯......."
   xh = new ActiveXObject("Microsoft.XMLHTTP")
   xh.onreadystatechange = getReady
   xh.open("POST",url,"false");
   xh.send();
   }
   function getReady()
   {
    if(xh.readyState==4)
    {
     if(xh.status==200)
     {
      strTest = xh.responseText ;    
         re = /form/;
      strTest=strTest.replace(re,"ggggg");
      oDiv.innerHTML  =  strTest;
     }
     else
     {
      oDiv.innerHTML = "由于:" + xh.statusText+"数据加载失败";
     }
    }
   }
  </script>

<body onload='getPageDataFromUrl("PostClubIndexList.aspx",document.all.ListBox);>

  然后,在自页面中用

<A class="a_hei00" href="#" ?Page=1"%>',document.all.ListBox)">首页</A></TD>

  的代码来回调主页面中的javascript函数,重新传给url连接 这样就实现了页面的客户端翻页的效果。