作者hermitwhite (不存在的骑士)
看板Ajax
标题[问题] ajax的动作在web server上延迟了
时间Thu Aug 23 18:22:42 2012
我有个ajax call在localhost看起来很正常,但放到伺服器上不知怎
地就延迟了。发生延迟的东西是放在success底下所以理论上应该不受到网
路速度影响?或者success被触发的时候其实还没有收到全部data?先把
code写出来:
ajaxObj.abort();
//ajaxObj是所有ajax call共用的global variable
ajaxObj = $.ajax({
url: url,
type: "GET",
data: {ajax :1},
//和server要求ajax版的内容
beforeSend: function(){显示loading bar},
success: function(data){
隐藏loading bar
$('#wrapout>menu以外的部分').fadeTo(100, 0, function(){
$('#wrapout').empty().html($(data));
呼叫另一个function帮data整形,因为有些内容是非javascript版
$('#wrapout').scrollTop(0);
设定一个global variable
location.assign('#!'+h.replace('?', '+'));
//用hash纪录网址
$(this).fadeTo(120, 1, function(){
$(this).clearQueue();
设定另一个global variable
});
});
},
error: function(){显示读取错误讯息},
dataType: 'html'
});
这东西在我自己的电脑上跑很正常但丢到德国的网页伺服器上就怪怪,
第一次fadeTo之後会僵住约500ms才fadeIn。中间也没做任何会对server发
出请求的动作(另外的地方有个onhashchange会在中间被触发,但它只在按
浏览器前进後退时实际动作,这里只会马上return)。想请问什麽问题会造
成这种延迟。实例可以点我签名档的网址(我把之前搞的iframe架构砍掉重
练了,那时两个月才弄出的功能现在刚学jQuery ajax竟然四天就写出来)。
--
Il Cavaliere Inesistente
http://dejavu.blogdns.org/
骑士是种一旦失去存在的意义,就会崩解消失的东西
因此他们的一生总在追求着某些事物,以维持自己的存在
如果有了存在的理由,即使是一副空的铠甲,也可以成为骑士
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.253.77.52
1F:→ hermitwhite:补充一下,似乎只有Chrome才发生 08/23 20:53
2F:推 nenpow:有试过用show跟hide还会有问题吗 08/23 23:08
3F:→ hermitwhite:真是没想到的测试方法,不过看来还是会延迟,不管有没 08/24 14:59
4F:→ hermitwhite:有用它的slideout效果都会发生同样时间的延迟。 08/24 15:00
5F:→ hermitwhite:不过奇怪的是用直接hide会变成loading bar在show完成 08/24 15:01
6F:→ hermitwhite:之後再延迟一下才消失。如中code我这个隐藏loadingbar 08/24 15:02
7F:→ hermitwhite:的动作(内容是$('#loading').css('z-index', '-1')) 08/24 15:02
8F:→ hermitwhite:是在success的一开始就执行了;为什麽会延迟到全部动 08/24 15:04
9F:→ hermitwhite:作完毕後才发生? 08/24 15:04