區分刷新和關閉瀏覽器操作
確定刷新頁面和關閉瀏覽器之間的區別似乎具有挑戰性,因為這兩個操作都會觸發ONUNLOAD 事件。不過,這個難題有一個解決方案。
解決方案:
此方法利用HTML5 本地儲存和伺服器客戶端通訊:
ONUNLOAD Handleler> : 在頁面上,新增on-unload使用偽JavaScript向視窗發送處理程序:
<code class="javascript">function myUnload(event) { if (window.localStorage) { window.localStorage['myUnloadEventFlag'] = new Date().getTime(); } askServerToDisconnectUserInAFewSeconds(); // Synchronous AJAX call }</code>
此函數:
ONLOAD 處理程序: 在正文上,新增一個載入處理程式:
<code class="javascript">function myLoad(event) { if (window.localStorage) { var t0 = Number(window.localStorage['myUnloadEventFlag']); if (isNaN(t0)) t0 = 0; var t1 = new Date().getTime(); var duration = t1 - t0; if (duration < 10 * 1000) { // Browser reload askServerToCancelDisconnectionRequest(); // Asynchronous AJAX call } else { // Tab/window close // Perform desired actions (e.g., do nothing) } } }</code>
此函數:
此解決方案適用於區分選項卡/視窗關閉、重新載入操作、關注的連結和提交的表單。它適用於支援 HTML5 本機儲存的瀏覽器。但請注意,它依賴於卸載事件,並且可能與 MSIE7 等舊版瀏覽器不相容。
以上是如何區分瀏覽器刷新和視窗關閉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!