鑑於:一個用於解析網站上數據部分的php腳本。它分析約10k產品,因此速度很慢。我需要Web Workers來循環AJAX請求嗎?
我需要爲它製作一個帶有html/css/js的網頁前端。我做了一個循環,它使得ajax請求和顯示進度信息。它使用syncronous ajax,因爲它需要等到另一個請求完成才能執行另一個請求。
do {
var parseProductsActive = true;
var counter = 0;
myAjax('parseProducts.php?start='+counter, false, function(resp) {
if (resp[0]=='s') {
counter += Number(resp.substring(1));
parseProductsActive = false;
}
else {
counter += Number(resp);
}
self.postMessage(counter);
});
} while (parseProductsActive==true);
我做它在一個網絡工作者,因爲我害怕它會掛斷電話,因爲這無盡的循環,(一)AJAX的同步性本身不會有助於解決prolem的接口。
但是,當我嘗試在web worker中使用ajax時,我發現儘管可能很難,因爲jQuery在Web Worker中根本不起作用。它甚至爲非DOM操作使用DOM,並且在Web Worker中不可用DOM。許多開發人員都懷疑使用Web Workers。我只是想問,如果我做對了還是錯了。有沒有更多的表面解決方案,我看不到?
您可以一次將100條記錄放入AJAX中,並且可以動態更新顯示內容,而無需使用Web Worker? –
我說的是不是一樣的?它如何不會在頁面上掛起?如果我們用循環編寫它。 – Gherman
不,你在異步(真實AJAX)中抓取100條記錄(AT ONCE),顯示它們,然後在第一個請求完成後再取100個記錄(AT ONCE)。 –