2016-05-28 9 views
1

まず、私のポストを見ていただきありがとうございます。私はAJAXを使用してサーバーPHP(laravel)にリクエストを送信し、サーバーはAJAXを返す前にリクエスト(約10秒)を処理します。しかし、AJAXが待っているときには、他のブラウザを開いて自分のWebページにアクセスします - >それはまだ10秒待っています。わかりません??? 私のjs私のブラウザはなぜ待っていますか?

function pullRequest() { 
 
    /* send request to server */ 
 
    var xhr = $.ajax({ 
 
    method: 'POST', 
 
    url: 'pull?random_key='+Math.floor(Math.random()*10), 
 
    data: {'_token':$('meta[name=csrf-token]').attr('content')}, 
 
    success: function(response) { 
 
     /* pull request */ 
 
     pullRequest(); 
 
    }, 
 
    }); /* end ajax */ 
 
    $('a[href]').click(function() { 
 
    xhr.abort(); 
 
    }); 
 
} /* end function pullRequest */ 
 

 
$(function() { 
 
    // pullRequest(); 
 
    setTimeout('pullRequest()', 2000); 
 
});

マイPHP

public function handle(Request $request) { 
    $time = time()+50; 
    while(1) { 
    echo connection_status(); 
    if($this->hasNewMessages() || time() >= $time) { 
     break; 
    } 
    continue; 
    } 
    return $this->messages; 
} 

私はそれについてのビデオを録画できます。私はそれを挿入することを知らないので、申し訳ありません。 、リンクユーチューブに従ってください:

https://www.youtube.com/watch?v=8jqPU3R-60Iは、あなたが実際にPHPの組み込みWebサーバ起動されているコマンドphp artisan serve

+1

これには、Webサーバーの構成とPHPセッションの2つの一般的な理由があります。できるだけ早く 'session_write_close()'でできるだけ早くセッションを閉じるべきです:http://php.net/manual/en/function.session-write-close.php –

+0

'session_write_close() 'whileループに、それは動作していません... –

+0

それはループに属しませんが、明らかにそれはあなたの問題ではありません。あなたのWebサーバーとは何ですか、あなたはその構成にアクセスできますか? –

答えて

0

をお読みいただきありがとうございました。 PHPマニュアルで述べたように

:このWebサーバーは、アプリケーションの開発を支援するために設計された

警告。また、テスト目的や制御された環境で実行されるアプリケーションのデモンストレーションにも役立ちます。フル機能のWebサーバーではありません。パブリックネットワーク上では使用しないでください。

プロダクショングレードのインストールやその他の機能が必要な場合は、Apacheなどの別のWebサーバーを使用する必要があります(誤って使用していますが)。

+0

Omg!私はそれについて間違っている。どうもありがとうございました。 –

+0

私の喜び。 :) –

+0

:) .......................... –

関連する問題