首頁 > web前端 > js教程 > 如何在使用者關閉瀏覽器視窗之前可靠地發送 AJAX 請求並執行腳本?

如何在使用者關閉瀏覽器視窗之前可靠地發送 AJAX 請求並執行腳本?

Patricia Arquette
發布: 2024-11-30 14:30:15
原創
484 人瀏覽過

How Can I Reliably Send AJAX Requests and Execute Scripts Before a User Closes a Browser Window?

在JavaScript 中管理AJAX 請求和腳本的視窗關閉

挑戰

使用者可以透過各種方法離開網頁,包括關閉視窗或導航透過另一個URL 離開。確定使用者離開頁面的時刻並觸發相應操作可能具有挑戰性。

解決方案

2024 年更新:

  • Beacon API:Beacon API 在現代瀏覽器中提供了可靠的解決方案,確保請求完成即使使用者離開頁面。
  • Visibilitychange 事件: 此事件擷取大多數瀏覽器中可觀察到的最後一個狀態更改,包括從被動狀態到隱藏狀態的轉換。

實作

可見性變更事件:

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === "hidden") {
    // Trigger AJAX request or run script
  }
});
登入後複製

Beacon API:

var url = "https://example.com/foo";
var data = "bar";

navigator.sendBeacon(url, data);
登入後複製

詳細資訊

Beacon API 旨在即使使用者離開頁面。建議利用visibilitychange事件來偵測使用者何時退出頁面,並在此時觸發Beacon請求。

Lifecycle.js 庫(適用於舊版瀏覽器):

為了與舊版瀏覽器相容,請考慮使用lifecycle.js庫來管理頁面

注意事項

  • 廣告攔截器:廣告攔截攔截器可能會阻止對某些追蹤網域的Beacon 請求。
  • 跨站點請求: Beacon 請求遵循 CORS 限制並包含 cookie,因此請確保適當的配置跨域請求。

以上是如何在使用者關閉瀏覽器視窗之前可靠地發送 AJAX 請求並執行腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板