A-A+

jquery $.Ajax 火狐浏览器闪屏解决办法

2016年01月21日 前端设计 暂无评论 阅读 8 views 次

本文章介绍了关于jquery的async:false $.Ajax 火狐浏览器闪屏解决办法

jquery的async:false,这个属性.

默认是true:异步,false:同步,代码如下:

  1. $.ajax({     
  2.         type: "post",     
  3.         url: "path",     
  4.     cache:false,     
  5.     async:false,     
  6.    dataType: ($.browser.msie) ? "text" : "xml",     
  7.         success: function(xmlobj){     
  8.         }     
  9. });   
  10. $.ajax({  
  11.         type: "post",  
  12.         url: "path",  
  13.  cache:false,  
  14.  async:false,  
  15.  dataType: ($.browser.msie) ? "text" : "xml",  
  16.         success: function(xmlobj){  
  17.         }  
  18. });  

这样在其它浏览器下没有任何问题,但是在ff下就出问题了,下面我们来看解决办法,async默认是true,即为异步方式,$.Ajax执行后,会继续执行ajax后面的脚步,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程,我的出现闪屏的情况是:

  1. $.ajax({  
  2.     type: "post",  
  3.     url: "index.php",  
  4.     data: { },  
  5.     async:false,   
  6.     beforeSend:function(){},  
  7.     success: function(data){  
  8.         //...  
  9.     },  
  10.     complete:function(){}  
  11. });  

在这里,我的async设为了false,原意是想返回数据了再执行$.Ajax后面的脚本,没想到这个地方却导致了在火狐浏览器下出现闪屏.(Firefox 11.0),滚动条下拉到底部触发ajax的情况.闪屏.

解决办法:将async:false注释掉, 也就是async为ture的情况下, 成功解决了火狐浏览器滚动条下拉到底部触发ajax出现闪屏的问题.

标签:

给我留言