页面大概5秒自动Ajax去请求服务器端,服务器端返回页面某个局部需要更新的数据,数据格式为XML,为什么,客户端用Jquery $("#id").html(data)会造成IE6、IE7、IE8页面很大的抖动,FireFox却很正常呢?
   【先说明下:本人绝对是为解决问题发帖,不是广告帖,请不要删除我的帖子啊,各位论坛大哥。】
   页面地址:http://www.9677.cc/Stock3/SH900905-11.aspx
   大概5秒想更新下图区域的内容
   
   
  但每次异步请求:http://www.9677.cc/Stock3/SH900905-11.aspx?_=1347934445566&_AjaxTags=dpzshqTop
   结果正常的页面就变成了下图的不正常样子:
   
==============================================$.ajax({
   type: 'get',
   dataType: 'xml',
   cache: false,
   url: url,
   data: '_AjaxTags=' + panelStrings,
   success: function(xml) {
   if (xml) {
   $(xml).find("panellist> panel").each(function() {
   var id = $(this).attr("id");
   var text = $(this).text();
   if ($('#' + id).length > 0) {
   $('#' + id).html($.trim(text))
   }
   })
   }
   if (callback != null) {
   callback(xml)
   }
   },
   complete: function() {},
   beforeSend: function() {},
   error: function(XMLHttpRequest, textStatus, errorThrown) {},
   timeout: function() {}
   })
   },  ===========================================================
各位帮忙分析下呀。这个问题出了2、3个月一直还是解决不了。
   

解决方案 »

  1.   

     我是提问的人
    原页面内容:
    <div id="dpzshqTop">
       
      <div class="dpzshq"  style="height:30px; line-height:30px; font-size:12px;margin:9px auto; text-align:left;">
          <span style="font-weight:bold;" id="dpzshqTag">大盘指数:</span>
          
          <a href="/Stock/SH000001.aspx" target="_self" title="上证指数:(000001)">上证指数</a>
          <span style="color:#00AA00">2067.48</span> 
          <span style="color:#00AA00">-0.53%</span>
          <span>146.09亿元</span >|
       
          <a href="/Stock/SZ399001.aspx" target="_self" title="深证成指:(399001)">深证成指</a>
          <span style="color:#00AA00">8438.58</span> 
          <span style="color:#00AA00">-0.53%</span>
          <span>154.23亿元</span >|
       
          <a href="/Stock/SH000300.aspx" target="_self" title="沪深300:(000300)">沪深300</a>
          <span style="color:#00AA00">2248.03</span> 
          <span style="color:#00AA00">-0.47%</span>
          <span>104.00亿元</span >|
       
          <a href="/Stock/SH000016.aspx" target="_self" title="上证50:(000016)">上证50</a>
          <span style="color:#00AA00">1572.74</span> 
          <span style="color:#00AA00">-0.59%</span>
          <span>37.74亿元</span >|
                
       </div>    ===========================
    Ajax异步请求内容:
    <div class="dpzshq" style="height:30px; line-height:30px; font-size:12px;margin:9px auto; text-align:left;"><span style="font-weight:bold;" id="dpzshqTag">大盘指数:</span><a href="/Stock/SH000001.aspx" target="_self" title="上证指数:(000001)">上证指数</a><span style="color:#00AA00">2068.30</span><span style="color:#00AA00">-0.49%</span><span>148.01亿元</span >| <a href="/Stock/SZ399001.aspx" target="_self" title="深证成指:(399001)">深证成指</a><span style="color:#00AA00">8446.39</span><span style="color:#00AA00">-0.44%</span><span>156.16亿元</span >| <a href="/Stock/SH000300.aspx" target="_self" title="沪深300:(000300)">沪深300</a><span style="color:#00AA00">2249.15</span><span style="color:#00AA00">-0.42%</span><span>105.13亿元</span >| <a href="/Stock/SH000016.aspx" target="_self" title="上证50:(000016)">上证50</a><span style="color:#00AA00">1573.62</span><span style="color:#00AA00">-0.54%</span><span>38.11亿元</span >| </div>==========================
    不知道是不是空字符问题导致呢?
      

  2.   

    既然数据本身没有出现问题,又因为你处理异步请求的是当前页面,不知道你服务器端做了哪些处理的。那么建议:
    将原有ajax处理页地址由:
    http://www.9677.cc/Stock3/SH900905-11.aspx?_=1347934445566&_AjaxTags=dpzshqTop
    变更为:
    http://www.9677.cc/Stock3/ajax.aspx?stock=SH900905?_=1347934445566&_AjaxTags=dpzshqTop
    也就是说,将处理异步请求的主体统一更换至另一个页面,通过类似于stock之类的参数来指定需要获取的股票代码。试试吧,这个很简单的了,将你现有的功能复制一份,新建一个页面,就是了
      

  3.   

    http://www.9677.cc/Stock3/ajax.aspx?stock=SH900905&_=1347934445566&_AjaxTags=dpzshqTop
    上面小小的手误,应该是类似这个样子。
      

  4.   

    不好意思,刚刚看明白了你的需求了你其实只不过是想用ajax异步获取最新的几大指数,然后更新至当前页罢了1:你更新的是<div id="dpzshqTop"></div>中的内容
    2:你获取的数据直接变更为获取一个字符串,我也没看到你说的不正常的样子是什么样子,是不是看到输出的全是HTML标签??因为我看你现在返回的xml中,是被html编码过了的。不知道这是不是你的问题???
      

  5.   

    Aajax触发异步请求的时间间隔:
    在周一~周五 早上9:30分----11:30分;
    下午13:30-15:00
    所以大哥,你在12点看的时候,页面是没触发异步请求,页面就正常
      

  6.   

    没有进行什么html编码,因为服务器端要输出正确的XML,有些常规的html代码需要用xml可表达的特殊符号表示,XML对象是完全没问题的,剩下的很可能不知道前端布局还是什么因素导致。
      

  7.   

    还是说,把页面滚动到下面后,ajax请求一执行,就自动将页面上滚至那个百度推广那里了???
      

  8.   

    大哥,你用IE6、7、8、9随便一个IE浏览器打开这个页面观察一会儿就知道了
    http://www.9677.cc/Stock3/SH900905-11.aspx
    问题:A。页面你明明拉滚动条到中间,页面会出现:“大抖动刷新”,用户体验不好,我想好好修改
          B。页面底部的内容有时候会只出来一半,另外一半被隐藏掉,如同
      

  9.   

    我通过FireFox和IE9的 F12监测到的请求让我大大震惊了,为啥差异这么大,到底IE的那些请求是哪些Ajax触发的,我头闷了。[上面的图是正常现象的FireFox请求,始终就是我开发所需要的]【上面的图是IE F12监测到的,我震惊了,为啥会有其他页面的Ajax触发请求呢,而且那么多,没法搞清楚】
      

  10.   

    唉,正常的。那些你说的其他的,要么是广告的,像image.sinajs.cn域下的,全是你打开了大盘的页面后,走势图的更新
      

  11.   

    不是,我13楼的监控都是同一个页面,FireFox  FireBug监控的请求,理论上IE的F12开发人员工具监测的请求应该跟FireBug是一样的,但实际上,IE的监控到的请求都是乱七八糟的好像都是我这个网站首页的请求,这是什么Js兼容性问题,真的就是头大
      

  12.   

    Sorry,13楼是我自己IE开了其他页面,监测的时候其他页面自动请求,造成的“误解现象”。。
      

  13.   

    这个知道的Lz,我刚在本地用你的代码模拟了你那个区域的ajax请求,不会出现你网站中那种现象是不是有其他的关联操作影响了??