A-A+
jquery $.Ajax 火狐浏览器闪屏解决办法
本文章介绍了关于jquery的async:false $.Ajax 火狐浏览器闪屏解决办法
jquery的async:false,这个属性.
默认是true:异步,false:同步,代码如下:
- $.ajax({
- type: "post",
- url: "path",
- cache:false,
- async:false,
- dataType: ($.browser.msie) ? "text" : "xml",
- success: function(xmlobj){
- }
- });
- $.ajax({
- type: "post",
- url: "path",
- cache:false,
- async:false,
- dataType: ($.browser.msie) ? "text" : "xml",
- success: function(xmlobj){
- }
- });
这样在其它浏览器下没有任何问题,但是在ff下就出问题了,下面我们来看解决办法,async默认是true,即为异步方式,$.Ajax执行后,会继续执行ajax后面的脚步,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程,我的出现闪屏的情况是:
- $.ajax({
- type: "post",
- url: "index.php",
- data: { },
- async:false,
- beforeSend:function(){},
- success: function(data){
- //...
- },
- complete:function(){}
- });
在这里,我的async设为了false,原意是想返回数据了再执行$.Ajax后面的脚本,没想到这个地方却导致了在火狐浏览器下出现闪屏.(Firefox 11.0),滚动条下拉到底部触发ajax的情况.闪屏.
解决办法:将async:false注释掉, 也就是async为ture的情况下, 成功解决了火狐浏览器滚动条下拉到底部触发ajax出现闪屏的问题.