作者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