我用下面的代碼到我的服務器上發送一個動作和參數的腳本延遲:阿賈克斯後通過警報
$(function() {
url = "http://...../myscript.php";
$.post(url, { action: 'my action', param: 'my parameter'}, {cache: false});
alert("Hello");
});
我發現(在Safari 6.0.4 MacOSX上)警告框彈出,只需在之後發送ajax請求,然後單擊「確定」。 (在Chrome上,顯示警報時會發送請求)。
所以代碼以下我的ajax請求實際上延遲了發送的請求。
這是爲什麼?
編輯:
$.post(url, { action: 'system', param: 'volume get 5'}, {cache: false});
sum = 0;
for(i = 0; i < 1000000000; i++)
sum++;
$("title").html(sum);
使計算完成之後將要發送的請求。
因爲alert()是阻止操作。該帖子被髮送,然後該警報停止瀏覽器處理結果(記住,ajax是異步的),直到您關閉該警報。您不會延遲發送的請求,而是延遲收到的請求。 –
@KevinB澄清一下,你正在延遲執行回調函數,而不是接收到的響應。 –
@KevinB我希望瀏覽器阻止任何回調或類似的,但沒有傳出的請求似乎很奇怪? – Samuel