首頁 > web前端 > js教程 > 主體

Web 開發中如何可靠地區分頁面刷新和瀏覽器關閉?

Susan Sarandon
發布: 2024-11-04 22:22:01
原創
1030 人瀏覽過

How to Reliably Differentiate Between Page Refreshes and Browser Closures in Web Development?

區分瀏覽器操作:刷新與關閉

在 Web 開發中,區分 ONUNLOAD 事件期間的頁面刷新和瀏覽器關閉可能會帶來挑戰。這是一個利用HTML5 本地儲存和客戶端/伺服器通訊的解決方案:

  1. 頁面卸載:

    • 實作onunload 事件處理程序在視窗上,例如myUnload()。
    • 將本機儲存標誌 myUnloadEventFlag 設定為目前時間戳記。
    • 通知伺服器在某些情況下可能會發生斷開連線(例如瀏覽器關閉)透過 AJAX 呼叫 (askServerToDisconnectUserInAFewSeconds()) 秒。
  2. 頁面載入:

    • 實作 onload 事件處理程序在 body 上,例如 myLoad()。
    • 從本機儲存中擷取 myUnloadEventFlag 並與目前時間戳進行比較。
    • 如果上一個卸載事件與目前卸載事件之間的持續時間小於 10秒,可能是重新載入(透過askServerToCancelDisconnectionRequest()取消斷開連線要求)。
    • 如果持續時間大於10秒,則可能是瀏覽器關閉。
  3. 伺服器端:

    • 收集清單中的斷開連接請求,並設定一個計時器執行緒(例如,每20 秒)來檢查清單。
    • 當斷開連線請求逾時(例如,5 秒後)時,中斷使用者連線。
    • 如果收到取消要求,則從清單中刪除對應的斷開連線請求。

這種方法還可以區分選項卡/視窗關閉、關注的連結和提交的表單。它適用於支援 HTML5 本機儲存的瀏覽器,並且比依賴遊標位置等特定事件屬性更可靠。

以上是Web 開發中如何可靠地區分頁面刷新和瀏覽器關閉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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