在頁面卸載之前執行AJAX 函數
在Web 開發中,可能會遇到需要執行異步JavaScript 和XML 的情況當用戶嘗試關閉頁面時(AJAX) 函數。這在各種場景中都很有用,例如從聊天應用程式中登出使用者或在卸載頁面之前更新資料庫記錄。
在您的特定情況下,您希望從名為的 MySQL 表中刪除一行當使用者關閉聊天頁面時「排隊」。您嘗試使用 window.onbeforeunload 事件和非同步 GET 請求來使用 AJAX 函數。但是,由於請求的非同步性質,這種方法無法有效完成資料庫更新。
要解決此問題並確保成功刪除資料庫行,請修改 AJAX 配置以指定 async: false。這將導致瀏覽器暫停並等待 AJAX 請求完成,然後再解除安裝頁面。以下是經過此修改的程式碼的修訂版本:
<code class="javascript">window.onbeforeunload = closeSession; function closeSession() { $.ajax({ url: "/chat/process/chat.php", type: "GET", async: false // Specify synchronous AJAX request }); return "disconnected"; }</code>
需要注意的是,設定async: false 可能會對效能產生影響,因為瀏覽器將等待AJAX 請求完成後再繼續執行其他任務。這可能會導致頁面卸載期間明顯延遲。
以上是如何確保在頁面卸載時使用 AJAX 成功更新資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!