[英]AJAX requests in Web Workers?
在我的Web應用程序中,必須將用戶在頁面上執行的操作發送給我的數據庫,以便保存最新的更改。
當用戶關閉頁面時,我只是在這里通過請求調用函數:
window.onbeforeunload = sendData;
但是出現問題的地方是我每10秒發送一次數據。 我確實將請求同步發送,而不是異步發送(否則不會在onbeforeunload
上發送)。 問題是,每隔10秒發送一次數據,這會增加用戶界面的延遲。
setInterval(sendData,10000);
這就是所謂的:
function sendData(){
var xhr = new XMLHttpRequest();
var localData = datatodatabase;
xhr.open("POST", "handler.php", false);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("pack="+datatodatabase);
}
是否可以將其添加到Web Worker中以使同步請求停止延遲其他所有操作?
(正如我所說:由於onbeforeunload
我必須使用onbeforeunload
)
為什么不讓它每10秒異步一次,而在onbeforeunload
使其同步呢? 像這樣:
setInterval(function () {
sendData(true);
}, 10000);
window.onbeforeunload = function () {
sendData(false);
}
function sendData(async) {
// Make the ajax call the specific way based on whether *async* is *true* or *false*
// Probably eventually:
xhr.open("POST", "handler.php", async);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.