2016-07-27 29 views
0

私はいくつかのPHPアプリを持っています。現時点では、ユーザーがリクエスト/フォームをajax(jQuery)経由でサーバーに送信する部分を開発しています。サーバーは数千のレコードをMySQLデータベースに挿入します(これは、さまざまな計算などのためにおそらく数分かかる)。jQuery(ajax)経由でサーバーに送信された要求の進捗状況を追跡する方法は?

質問:サーバー側の更新状況を追跡する方法はありますか?私はすべてが終わったら出力を書くことができます。回避策は次のようなものになります: - どこかのセッションIDと進行状況の詳細を保存します(例:5kから3kの挿入を処理しました - データベースの進捗テーブルの中におそらく - フロントエンドのjQueryスクリプトで10秒ごとに情報を要求しています)そう...

任意のアイデア?あなたが持つかもしれない質問をすること自由に感じて下さい。宜しくお願い致します。

+2

あなたの考えはこれを行う唯一の方法です。 XHRの進捗状況は、アップロードされたファイルのステータスのみを追跡します。要求の結果としてサーバー上で行われる作業はありません。 –

+0

@Rory McCrossanそれは私が思ったことです。それに取り組むだろう。ありがとうございました。 – virrion

答えて

1

私はあなたがサーバー側のやっていることの詳細を知りませんが、スクリプトことスクリプトを一度に1ステップ実行し、その結果を返してから、次のステップを実行するために再度呼び出されるようにするのが理にかなっています。

このようなプロセスを使用すると、クライアントの進行状況を追跡できます。クライアントがブラウザウィンドウを閉じたり、ページにajaxコードを残したりすると、残りのステップは実行されないという警告があります。

+0

基本的には、選択と追加の数学計算はほとんどありません。選択ごとに、追加のカップルレコードが挿入されています。これはストアドプロシージャでなければなりません。ありがとう。 – virrion

+0

私が示唆したようにしたいのであれば、テンポラリテーブルに書き込み、最後のステップでライブテーブルにコピーするだけです。 –

+0

実際、実行中にあるテーブルに進捗(例:1kレコード程度)をパーセンテージで書き留めるためのストアドプロシージャがあると思います。そして私のフロントエンドからは、プログレスバーを表示するたびにその番号を取得することができました。 ありがとうございました。 – virrion

関連する問題