2011-05-13 94 views
1

我想要定期使用jQuery和setInterval來返回給定URL的值。我的代碼如下所示:jQuery Ajax和setInterval Chrome問題

$("form").submit(function() { 
     setInterval(function(){ 
      $('#upload_progress').load('/upload_progress'); 
     }, 5000); 
    }); 

這工作完全在Firefox,但在鉻,負載()函數從不運行。我也很喜歡使用$ .ajax函數以及相同的結果。

任何想法爲什麼這隻會影響Chrome(v11.0)?

任何幫助將不勝感激!

+0

在js控制檯中是否有錯誤? – Lukas 2011-05-13 02:50:38

+0

不,完全沒有。 – ericalli 2011-05-13 02:55:48

+0

爲什麼將它設置爲提交? – 2011-05-13 02:55:54

回答

0

其中之一,你實際上是提交表單。我很確定這使得瀏覽器處於「嘿,我正在等待來自服務器的重定向。」如果你真的想要輪詢和更新頁面,你可能需要做

$("form").submit(function(e) { 
    e.preventDefault(); 
    // ... 
} 

只是作爲一個開始。在這種情況下,它適用於我。在這裏,我甚至讓你成爲一個可愛的JSFiddle:http://jsfiddle.net/plukevdh/sRe4k/。如果你需要重定向一次完成,你可能會添加更多的數據到回調(json或其他),以便您可以檢查以查看{status: 0-100 [percent], completed: true|false},如果完成或狀態> = 100,只需更改window.location。

0

您的代碼是否包裝在文檔準備檢查中?

$(document).ready(function(){ 
    // your code 
}); 

如果不是,那可能是原因。

+0

是的,我也可以在setInterval函數之前成功執行其他函數(如警報)。 – ericalli 2011-05-13 03:01:30

+0

確定 - 其他原因可能是權限。這是在本地運行嗎?如果是這樣,Chrome不允許對本地文件進行AJAX調用。在網絡服務器上運行應該沒問題。 – 2011-05-13 03:09:58