2016-04-02 26 views
1

私は好奇心の問題を抱えており、Google検索クエリが成功するためには、私が意味することを表現するための正しいフレーズを見つけられないようです。利用可能な場合、部分的にPHPのAjax応答

一部のサイト(主に価格クエリを行う)は、ユーザー設定基準を使用して何かにajaxクエリを実行します(これはPHPスクリプトと仮定します)。クエリが終了するとデータは一度にすべて表示されませんいくつかの部分は応答から早く表示されます(私が前に利用可能になったと仮定しているので)。

私は、ajaxリクエストが異なるソースを照会し、できるだけ早くデータを返すPHPスクリプトに対して行われたと思います。これは、より早いクエリ応答が最初に送られることを意味します。

コア質問:このようなメカニズムは、PHPスクリプトが複数回とAjaxスクリプトはちょうど応答を待ちません データを返すことができることに構築されるだろうどのように

私はむしろこれについての情報があると確信していますが、残念ながら、それを検索するためにどのような用語でも見つけることができませんでした。

EDIT:

I異なるソースを照会しているようだデータを出力するとすぐに利用できるよう、さまざまな航空会社とは別のオファーを意味し、異なる時間に現れる安い航空券の予約サービスを、という良い例のいえ。

誰かが私の好奇心を和らげることを願っています。

ベスト、

Alari

+0

オープンされた開発者コンソールは、そのようなサイトでコンソールを開き、何が起こっているのかを確認します。 –

+0

私はこれを試してみました。スクリプト全体が縮小され、何が起こっているのか、どこからコールが発信されたのかは分かりません。 –

答えて

1

クライアント側では、あなたはonprogressを必要としています。 (this answerからコピーされた)次の例を参照してください:

var xhr = new XMLHttpRequest() 
xhr.open("GET", "/test/chunked", true) 
xhr.onprogress = function() { 
    console.log("PROGRESS:", xhr.responseText) 
} 
xhr.send() 

xhr.responseTextサーバーによって与えられた応答を蓄積していきます。ここでの欠点は、xhr.responseTextに累積応答が含まれていることです。現在の応答のみを取得するために、substringを使用できます。

サーバー側では、出力バッファリングを実行して応答をチャンクすることができます。 like:

<?php 
header('Content-type: text/html; charset=utf-8'); 
for($i = 0; $i < 100; $i++){ 
    echo "Current Response is {$i} \r\n"; 
    flush(); 
    ob_flush(); 
    // sleep for 2 seconds 
    sleep(2); 
} 
+0

あなたの答えをありがとう、このタイプの機能の名前または用語があるので、私はさらなる研究をすることができますか? –

+0

はい、「chunked ajax response」を検索してください。 – Gogol

+0

と答えが助けられたら、それも受け入れることを検討してください:) – Gogol

関連する問題