2012-02-13 17 views
4

私はPHPスクリプト(script.phpと呼ぶことができます)を呼び出すフロントエンドアプリを持っています。私は完了したパーセンテージを(クライアント側で)表示したい。PHP + JQuery/AJAX - ローダー(パーセント付き)

script.phpファイルでは、いつでも完了したジョブの割合を計算できます。私は少しを検索し、可能な解決策は、次のようになります。

クライアント側で
  • はscript.php
  • 表示からパーセントを取得するには、別のPHPスクリプトを使用してポーリング動作を開始しscript.phpファイル
  • を呼び出しますクライアント側のこの割合。

私の問題は、クライアント側で表示するために、このパーセント値をスクリプトと他のPHPファイルとの間で「共有」する方法です。

私はJQuery/AJAX(キャッシュされたソリューションの使用を避けようとしていました)をどのようなオプションで使用していますか?

おかげ

+0

より良いオプションは、長いスクリプト呼び出しをトリガーし、「ロード」の画像や予告してボタンを置き換える&後に何かをするJS/AJAX/jqueryのを使用することです、このスレッドを見てみましょうあなたは応答を得なければ、PHPからの応答を得る前に新しいプロセスをフォークする必要があります。ほとんどの設定でPHPがシングルトレッドになっています –

答えて

6

を使用すると、クライアント側で必要なのは、定期的にあなたのprogress.phpスクリプトを呼び出すか、何でもそれを呼び出して、最新パーセントが完了のget javascript関数です。その後、その値でDOMを更新することができます。

jQuery AJAX polling for JSON response, handling based on AJAX result or JSON content

+0

これは私が探していたものでした。ありがとう。 – Barata

+0

私には1つの問題しかありません。 AJAXを使って私は、script.phpから完成した最新のパーセンテージを得る責任があるポーリングスクリプト(progress.php)を呼び出します。私はこの値をSESSIONに保存しています。 問題はprogress.phpがscript.phpが終了するのを待ってから復帰することです。何らかのマルチスレッディングなどをしなければならないのですか? – Barata

+0

彼らはただ1台のサーバーでこれをAPCに推薦していましたが、何人かのユーザーにまたがって複数のアップロードが同時に行われていると思います。私はこれがそれであるかどうかはわかりませんが、正しい方向にあなたを逃がさなければなりません。 http://www.ultramegatech.com/2010/10/create-an-upload-progress-bar-with-php-and-jquery/ – quickshiftin