ホームページ > ウェブフロントエンド > jsチュートリアル > ユーザーがブラウザ ウィンドウを閉じる前に、AJAX リクエストを確実に送信し、スクリプトを実行するにはどうすればよいですか?

ユーザーがブラウザ ウィンドウを閉じる前に、AJAX リクエストを確実に送信し、スクリプトを実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 14:30:15
オリジナル
536 人が閲覧しました

How Can I Reliably Send AJAX Requests and Execute Scripts Before a User Closes a Browser Window?

JavaScript での AJAX リクエストとスクリプトのウィンドウ終了の管理

チャレンジ

ユーザーは、ウィンドウを閉じる、移動するなど、さまざまな方法で Web ページから離れることができます。別の URL 経由でアクセスできます。ユーザーがページを離れた瞬間を判断し、対応するアクションをトリガーすることは困難な場合があります。

解決策

2024 年更新:

  • Beacon API: Beacon API は最新のブラウザで信頼性の高いソリューションを提供し、ユーザーがページを離れてもリクエストは完了します。
  • Visibilitychange イベント: このイベントは、パッシブ状態から非表示状態への遷移など、ほとんどのブラウザーで観察可能な最後の状態変化をキャプチャします。

実装

可視性の変更イベント:

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === "hidden") {
    // Trigger AJAX request or run script
  }
});
ログイン後にコピー

ビーコン API:

var url = "https://example.com/foo";
var data = "bar";

navigator.sendBeacon(url, data);
ログイン後にコピー

詳細

ビーコン API は、ユーザーがページを離れます。ユーザーがページを終了したことを検出し、その時点でビーコン リクエストをトリガーするには、visibilitychange イベントを利用することをお勧めします。

Lifecycle.js ライブラリ (古いブラウザ用):

古いブラウザとの互換性を確保するには、lifecycle.js ライブラリを使用してページを管理することを検討してください。 lifecycle.

考慮事項

  • 広告ブロッカー: 広告ブロッカーは、特定の追跡ドメインへのビーコン リクエストをブロックする場合があります。
  • クロスサイト リクエスト: ビーコンリクエストは CORS 制限に従い、Cookie が含まれるため、クロスオリジンに適切な構成を確保してください。リクエスト。

以上がユーザーがブラウザ ウィンドウを閉じる前に、AJAX リクエストを確実に送信し、スクリプトを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート