這是一個奇怪的錯誤,因爲它是第一個AJAX頁面,而我創造它是一個錯誤我以前從來沒有面對任何完整的重載......甚至互聯網並不能幫助我 - 因爲它似乎並不是一個常見的問題。JS似乎停留在DOM Ajax的重新加載頁面
讓我們對問題一步一步: 我在Ajax請求是由簡單的函數引發的頁面看起來像這樣:
$("a[rel='tab']").live('click',function(e) {
pageurl = $(this).attr('href');
$.ajax({url:pageurl+'?rel=tab',success: function(data){
$('#content').html(data);
}});
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl);
}
e.preventDefault();
return false;
});
這是由PHP文件,如果解析屬性設置設計不會被加載,而只是文件本身被加載 - 容易胡?
好吧,現在問題本身 - 很明顯,頁面隨着時間變慢,但我並沒有真正煩惱,因爲我認爲這是設計javascripts中的一些錯誤 - 但事實並非如此。
所以我看了看螢火,什麼我見過解釋了很多 - >的請求疊起來,每一個新的一頁!當然,這會導致一個矯枉過正的...起初,我認爲這只是「setInterval」的,並得到了一個解決方案,在每次重新加載時重置它們。
但是,這不是他們也似乎在「腳本」疊起來,因爲我不認爲這是一個普通的歷史,只是重新加載腳本出現不止一次的唯一案例!
在右邊的提示將是真正的幫助,因爲我幾乎被困在這兒了!
你在原始代碼中用'setInterval'做了什麼?你是否定期調用Ajax函數?通常你應該避免在Ajax中使用'setInterval',因爲你永遠不知道請求何時完成。改用'setTimeout'並在成功回調中調用它。這樣,你只有一次超時運行。 –
如果設置了VAR來阻止它,直到成功這不是一個大問題 - >,例如VAR blockit =假的 - 成功blockit> =假的 - - >函數調用blockit =真有可以避開unneccesary調用和使用的setInterval沒有任何問題:)。 –