ヘッダーが送信されてから長い時間 (分) 経過した後、スクリプトがリクエストに何かを追加できる ajax リクエストを作成するにはどうすればよいですか? jqueryでこれを行うにはどうすればよいですか?
これは、チャット アプリケーションで非常に役立ちます。その場合、メッセージごとに 1 つの要求がある必要はありません。
ヘッダーが送信されてから長い時間 (分) 経過した後、スクリプトがリクエストに何かを追加できる ajax リクエストを作成するにはどうすればよいですか? jqueryでこれを行うにはどうすればよいですか?
これは、チャット アプリケーションで非常に役立ちます。その場合、メッセージごとに 1 つの要求がある必要はありません。
私の知る限り、これは不可能です。通常使用されるのはlong-pollingです。ロング ポーリングでは、データストアをポーリングし、データが利用可能になったときに 200 応答を送信する、サーバー上での存続期間の長い要求が必要になります。メッセージの送信はクライアントから開始されるため、メッセージは単一の AJAX 呼び出しとして送信できるため、有効な HTTP リクエストを用意する必要はありません。注: ロング ポーリングは、サーバーからクライアントへの通信に使用されます。私が言ったように、あなたがやりたいことが可能かどうかはわかりませんが、いずれにせよ、メッセージごとにクライアントから完全な HTTP リクエストを送信するオーバーヘッドは、最適化を試みる価値はありません。
長期間有効なソケット接続が必要な場合は、socket.ioの使用を検討する必要があります。チャットのユースケースに最適です。
このチュートリアルでは、socket.io を使用してチャットを実装する方法について説明します。ちなみに、socket.io は Node.js バックエンドに限定されず、さまざまな言語の実装が存在します。この用語をグーグルで検索するとsocket.io server implementations
、多くの結果が得られます。
いいえ、これはチャット アプリケーションでは行われません。
Facebook.com にアクセスしてメッセージの送信方法を調べると、Enterボタンを押すと各メッセージが直接送信されることがわかります。要求がサーバーに送信されると、応答の準備が整うまで 2 つのサーバー間の接続が切断されるためです。
ヘッダーを送信してから、データを結合し続けたいと思いませんか? そのためには、サーバー側でリクエストをアクティブにしておく必要があります。なぜこれが欲しいのかわかりません。ただし、Chat アプリケーションを作成するだけの場合は、こちらを参照してください。
http://www.asp.net/signalr (SignalR)を使用するか、メッセージをドメイン (Cookie が使用されていないサブドメインなど) に送信します。したがって、テキスト情報のみが送受信されます。
ただし、メッセージを送信する必要があるたびに、新しいリクエストを送信する必要があることに注意してください。アプリにSignalRを使用したことはありませんが、その作業の詳細が記載されたドキュメントを読んでみましたが、そのような使用法で使用されています。
プレーンな JavaScript ではそれを行うことはできません。
Web アプリを最近のブラウザーで実行することを意図している場合は、HTML5 Server-Sent Events (SSE)を使用できます。
こちらをご覧ください: http://blog.alexmaccaw.com/killing-a-library
またはここ: http://www.html5rocks.com/en/tutorials/eventsource/basics/