ページのアンロード前に 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>
ブラウザは AJAX リクエストの完了を待ってから実行を続行するため、async: false を設定するとパフォーマンスに影響を及ぼす可能性があることに注意することが重要です。他のタスク。これにより、ページのアンロード中に顕著な遅延が発生する可能性があります。
以上がページのアンロード時に AJAX を使用してデータベースの更新を確実に成功させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。