簡體   English   中英

如何等待瀏覽器關閉直到服務器調用完成?

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

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