アンロード前に Ajax 関数を実行
Web 開発シナリオでは、多くの場合、ページがアンロードされる前に特定のアクションを実行する必要があります。データベース内の行を削除する場合と同様です。この記事では、ブラウザの「beforeunload」イベントで Ajax 関数を実行するためのソリューションを提供し、Ajax リクエストのデフォルトの非同期特性を克服する方法を示します。
提供されたコード スニペットは、JavaScript を使用して「beforeunload」イベント ハンドラーを初期化します。これは「closeSession」関数を呼び出します。この関数内では、jQuery を使用して Ajax リクエストが作成され、PHP スクリプトに GET リクエストが送信されます。ただし、デフォルトでは非同期であるため、Ajax リクエストはデータベース行の削除をトリガーできませんでした。
この問題を解決するには、PHP スクリプトに「DELETE」ステートメントを実行して削除するクエリ文字列が含まれています。 「キュー」テーブルの対応する行。 jedoch では、ブラウザの「beforeunload」イベントは、実行前に非同期プロセスの完了を待機しません。
これに対処するには、解決策の 1 つは、Ajax 設定の「async」オプションを「false」に設定して、ブラウザは、アンロード プロセスを続行する前に、Ajax リクエストが完了するのを待ちます。これにより一部のブラウザでは問題が解決される可能性がありますが、すべてのブラウザで一貫した動作を保証することはできません。
「beforeunload」イベントと Ajax リクエストを処理する別のアプローチについては、次のリンクの説明を参照してください。
http://api.jquery.com/unload/#dsq-comment-body-132164390
以上が「beforeunload」イベントで Ajax 関数を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。