2011-01-30 9 views
1

出力をリアルタイムで表示するには、$ .ajax()関数をどのように使用できますか。今私は、このコンテキストでそれを使用しています:jQueryのajax関数の使い方は?

$.ajax({ 
    type: 'get', 
    url: 'process.php', 
    data: 'foo=boo', 
    success: function(output) { 
     $('div#results').html(output); 
    } 
}); 

を上記ディスプレイ出力は、スクリプトが完全に実行しているだけ AFTER PHPスクリプトからrecived。だから、あなたは次のことを持っていたPHPスクリプトの場合:

echo 'Hello for the first time'; 
// some code 
echo 'Hello again'; 
// some code 
echo 'Are you still here?'; 

出力は1でこれらすべてのエコーすべてのだろう。代わりに、別のなどの要求がリアルタイムでPHPによって成就された後、私はPHPスクリプトのいずれかから受信した出力を更新することができます任意の方法はありますか?

たとえば、JavaScriptの領域で​​完全に作業する場合、リアルタイムで物事を更新する方法を知っています。たとえば、入力が10文字以上であるかどうかを確認するには、毎回チェックするトリガーとしてkeyup() 10番目の文字が入力されるとすぐに消えるメッセージを表示します。

しかし、どのように出力をPHPファイルから来ているときに、このような何かを行うには?それは可能ですか?私は、スクリプトは、現在のデスクトップアプリは持っているかのように、処理しているタスクのどの部分なされたものであり、どのくらいの進捗を示すステータス画面を持っていると思いますので、私はこれを行うために必要がある理由

理由です。

+0

リアルタイム:非同期 –

+0

は、これを読んでいる:http://stackoverflow.com/questions/136012/comet-and-jquery – ifaour

+0

また、それは 'foo = bar' ;-) – ifaour

答えて

1

ことはできません。このタスクを分割する必要があります.1つは、データベースのステータスを更新する長時間実行されるタスクと、データベースからステータスをフェッチしてユーザーに進行状況を表示するタスクです。

+0

これはよいアイデアのように思えます。タスクを実行してから次のタスクに移動する前に、データベース内のPHPスクリプトの更新ステータスを変更する必要があります。この特定のプロジェクトでは、適切なデータベースを使用することはできませんが、フラットファイルを使用できます。あなたは私が、私はそれの内容に基づいて、そのフラット・ファイルや更新状況の内容をリロードするAJAXのコマンドを実行することができますPHPによって行われたすべての変更の際にその方法を変更するためのファイルを監視するためにJavaScriptを使用する方法を知っていますか。フラットファイルの変更を監視するにはどうすればよいですか? – Sammy

+0

プレーンファイルを使用する場合、スケーリングの問題に遭遇しますが、小規模なプロジェクトではそれは良いでしょう。私はPHPの専門家ではないが、私はあなたが単にファイルを読み直すことができると思う。フラットファイルの代わりにsqliteデータベースを使用できますが、マルチスレッドではありませんので注意してください。 – gor

+0

非常に小さなプロジェクトなのでスケーラビリティに問題はありません。フラットファイルの内容を監視し続けるためにJAVASCRIPTでトリガーとして使用できるものを実際に求めていました。私が元の質問で示した例では、入力フィールドの値をチェックするために "keyup"を使用していました。しかし、この状況では、ユーザはPHPスクリプトを動作させ、何もしません。だから私はJavaScriptがフラットファイルの変更をチェックし続けるためのトリガーとして何が使えるか考えることはできません。 – Sammy

0

うーん、いや。それは可能ではありません。あなたができることは、あなたのPHPファイルを分解し、それぞれのファイルに対して複数のajaxリクエストを呼び出すことです。

関連する問題