2012-12-29 12 views
5

私はシンプルなAJAXを行っている...リクエストが処理された後、xmlhttprequestは接続を開いたままにしますか?

リクエストとレスポンスヘッダには、両方の接続が含まれていますKeep-Alive

私は少しゴーグルと、クライアントは、このようにサーバとの持続的な接続 を維持することがわかりました。これは、クライアントが各応答を待たずに複数の要求を送信できる、パイプラインをサポートします。

  1. のXMLHttpRequestが実際にサーバへの接続を開くん:

    は、だから私はいくつかの質問がありますか?

  2. 多くのxmlhttprequestオブジェクトを作成すると、独自の接続が開かれるか、パイプラインを使用して同じ接続で送信されますか。
  3. 私は同時に要求を処理したい。要求(ストアパラメータ)をキューに入れることができ、それを処理するためのonreadystate提供関数で、つまり再帰的に要求を行う関数を呼び出すことはできますか?それともいいアイデアではないでしょうか?
  4. いつ接続が閉じられましたか。どの段階ですか?

その他の情報:私は提案することができますajax.YouのためのjQueryやその他のlibrarieを使用したくない 。 i がどのように機能するかを確認できます。 私はjavascripとphp(codeigniterフレームワーク)を使用しています。 制限に達すると、 である複数のrequest(2)..とキュー要求を処理できるようにしたい。事前に

感謝:)

+0

あなたはHTTPリクエストが 'tcp connection'を使って達成されていることを理解していますか?ファックスは電話回線を使用しているため、httpはtcpを使用します。'tcp connection'は' Connection:Keep-Alive'で参照されているものです。ブラウザがいつどこでtcp接続を作成するかはわかりませんが、一般的にはブラウザが複数のtcp接続を同時に作成することが有益でしょう。 html、画像、CSS、Ajaxリクエストなどのリクエストはすべて同じ行になります(ただし、ブラウザは一般に複数の行を開きます)。 – goat

+0

返事をありがとう。うん、私はそれがTcp接続上で行われることを知っている。接続:キープアライブについての説明をありがとう。私は標準が2つの同時接続であることを読んだが、いくつかのブラウザはより多くをサポートしている。 –

答えて

3

のXMLHttpRequestを使用して、ページを更新せずに、サーバーからのデータを要求して受け取らせたオブジェクトです。それはHTTPまたはHTTPS要求を使用します。基本的にHTMLページの要求と受信と同じです。それらを同期または非同期で開くことができます。ここで

XMLHttpRequest.open(Method, URL, Asynchronous, UserName, Password) 

Methodは、使用するHTTPリクエストメソッドです。私は同時リクエストを処理したいhttp://www.w3.org/TR/XMLHttpRequest/#the-open()-method

を参照してください..私は、要求(ストアパラメータ)をキューすることができ..andそれを処理する機能を提供onreadystateに...つまり、再帰的に要求を行う関数を呼び出しますか?それともいいアイデアではないでしょうか?

私はのXMLHttpRequestsの配列を作成し、データを処理し、配列onreadystatechangeからのXMLHttpRequestを削除したいです。非同期応答の混在した順番を受け取るか、まったく応答を受け取らない可能性があることに注意してください。

いつ接続が閉じられますか。どの段階ですか?

データを受信した直後に閉じます。 keep-aliveは、セッションではなく接続を維持することに注意してください。

+1

なぜ私はdownvotedですか? – Ertug

+0

私ではありません。返信いただきありがとうございます。私はそれについてもっと調べるつもりです。 –

+0

アラン、あなたは大歓迎です。私はちょっと不思議です。私の答えに何か間違いがあると、私はそれを誰かに誤解させたくないので、私は間違いから学びたいと思っています。 – Ertug

関連する問題