![](/img/trans.png)
[英]How Can I Reliably Complete Asynchronous Operations on Firefox browser close?
[英]How can I wait browser to close till server call gets complete?
我正在嘗試調用一個服務來更新瀏覽器關閉或標簽關閉的數據。 問題是服務調用使用$http
及其async所以根據我的瀏覽器卸載事件取消該調用並關閉瀏覽器。 我希望瀏覽器等到我收到該服務調用的響應/錯誤。
我試過調用e.preventDefault()
和e.stopPropagation()
但它不起作用。
function releaseDocument(e) {
EventService.releaseDocument().then(function() {
window.close();
}, function() {
window.close();
});
}
$window.onbeforeunload = releaseDocument;
$window.onunload = releaseDocument;
任何人都可以幫助或建議任何替代方案來實現同樣的目標!
也許我們可以通過使用同步AJAX調用來實現它,而且這只是我的建議。
當您關閉瀏覽器/選項卡時,我們將顯示一個確認框。 同時我們將同步調用您的服務。 但是我們應該在執行確認框之前調用此服務。 因此,同步調用將執行每一行並返回結果,然后只有確認才會觸發/或關閉選項卡。 在這里我們沒有時間執行該功能。
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "Do you want close this browser";
releaseDocument()// it should be an sync function ( like you can set async:false in your ajax options
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.