位heisenbug在這裏...jquery SLOW調用get或post
在這裏有一個PHP/codeigniter應用程序。很確定控制器/型號等是健全的,沒有錯誤。總得是一個客戶端的問題...
非常簡單的代碼像這樣的頁面:
<div id="stuff">I'm empty now!</div>
<script language="javascript">
$(document).ready(function(){
var stuffID = <?=$id?>;
$.post('/event/viewStuff/'+stuffID,
function(response) {
$('#stuff').html(response);
}
);
});
</script>
負載上述的「東西」,現在div有東西一格,加上鍊接後通過他們10的時間,這看起來像此頁:
<a href="#" onclick="$('#stuff').html('Wait please...'); $.get('http://localhost/event/viewInvitees/22/30', function(response) {$('#stuff').html(response); }); return false">Next Page</a>
但我點擊這些鏈接,每一次,頁面凍結爲4-5秒,做什麼我不知道 - 沒有網絡活動,不沒有鉻調試器。然後,「stuff」div重新加載結果。另外 - 「Please wait」消息未顯示。奇怪的是 - 當我抽出「document.ready()」函數時,重新加載頁面,只需點擊上面那個裸露/硬編碼的分頁鏈接,事情就會像預期的那樣快速消失。
非常感謝您花時間閱讀。
NEW INFO:
Xdebug的曲線顯示任何不尋常 - 約1秒的功能呼叫返回給控制器/視圖預期返回的內容。
Chrome的探查表明這一點 - 一個愚蠢的,不明原因的閒置:
的 「b.event.remove()」 的jQuery函數,要帶6+秒的任何額外的洞察力?這似乎是問題?
你爲什麼在你的jQuery中使用php direktly?我的意思是,如果你使用ajax/jquery post ...你可以用json處理這個。不建議像你這樣做這個! – Dwza
聽起來像請求正在同步發送,但我不知道爲什麼會因爲你使用'$ .get()'。這是什麼版本的jQuery? –
@Dwza我用3個不同的PHP視圖構建這個頁面 - 包裝器有我需要使用的整體「stuff」標識符。 – user3550402