簡體   English   中英

Web Workers中的AJAX請求?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM