ホームページ >バックエンド開発 >PHPチュートリアル >信頼性の高いブラウザ ウィンドウを閉じるクリーンアップのために「onbeforeunload」で AJAX 関数を実行する方法
onbeforeunload での AJAX 関数の実行
チャット アプリケーションの開発では、ユーザーがチャット アプリケーションを閉じたときにクリーンアップ アクションを実行する必要があることがよくあります。ブラウザウィンドウ。ただし、window.onbeforeunload イベントは非同期で実行されるため、ページがアンロードされる前に AJAX 呼び出しを実行することが困難になります。
この問題を解決するには、AJAX 設定で async: false を明示的に設定することをお勧めします。これにより、ブラウザはページをアンロードする前に AJAX リクエストが完了するまで待機するようになります。ただし、これはすべてのブラウザでサポートされているわけではないことに注意することが重要です。
提供されたコードの調整されたバージョンは次のとおりです。
<code class="javascript">window.onbeforeunload = closeSession; function closeSession(){ $.ajax({ url: "/chat/process/chat.php", type: "GET", async: false // Force synchronous execution }); return "disconnected"; }</code>
PHP コードでは、削除クエリを使用できます。通常どおり実行されます:
<code class="php">$delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID']; // query, etc</code>
AJAX リクエストで async を false に設定すると、ページがアンロードされる前にデータベース行が確実に削除され、必要なクリーンアップ機能が提供されます。
以上が信頼性の高いブラウザ ウィンドウを閉じるクリーンアップのために「onbeforeunload」で AJAX 関数を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。