在我的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,我必须使用synchronized )
发布于 2012-09-27 04:27:31
为什么不让它每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);
}https://stackoverflow.com/questions/12609744
复制相似问题