ホームページ > バックエンド開発 > PHPチュートリアル > PHP のインポートとエクスポートに進行状況バーを表示するにはどうすればよいですか? ?

PHP のインポートとエクスポートに進行状況バーを表示するにはどうすればよいですか? ?

WBOY
リリース: 2016-06-23 14:23:59
オリジナル
1895 人が閲覧しました

ユーザーフレンドリーにするために、プロンプトが表示されたときに進行状況をオフラインプログレスバーで表示したいのですが、方法がわかりません。
私のインポートは、ファイルを csv 形式でインポートし、それを直接読み取り、データテーブルに挿入することです。 エクスポートも、直接クエリを実行して csv 形式のファイルを生成します。
進行状況バーを作成することはできます。インポートとエクスポートの実行の進行状況を取得し、ajax と js を使用して進行状況バーを更新する方法がわかりません。


ディスカッションに返信 (解決策)

sliverlight、flash、html5 を介したクライアント サポート

またはサーバー側で、apc 拡張機能を確認します。あるようですが、名前を忘れました

これはajaxの使い方は簡単です 実装するには、関連情報を確認できます

100の操作がある場合、最初の操作を1ずつ進め、2番目の操作を3ずつ進めることができます...

この進行状況バーの効果は行わないことをお勧めします速度に影響する可能性があるため

「インポート」を行うだけです

キャッシュされた出力を使用します

// 省略其他html+js进度条代码$i = 0;while($i<100) {    // 执行内容    sleep(1);    // 根据总量和当前任务计算任务进度$i    $i = $i++;    echo '<script>进度条变更js到'.$i.'</script>';    ob_flash()    flash();}
ログイン後にコピー

<?php// 进度条演示代码,页面输出ob_start();header('Content-Type: text/html;charset=utf-8');echo '当前任务进度:<span id="p">0%</span>';echo str_repeat(' ', 4096);ob_flush();flush();// 执行任务$i = 0;while($i<100) {	    // 执行内容    sleep(1);    // 根据总量和当前任务计算任务进度$i    $i++;    echo '<script type="text/javascript">document.getElementById(\'p\').innerHTML = "'.$i.'%";</script>';    ob_flush();    flush();}
ログイン後にコピー

以前にコレクションを実行していたときにこれを書きましたが、Chrome で試してみました。進捗状況は実行されません

http://devp.cosrc.com/scroll2.php

非常に優れており、非常に強力です>>>

PHP コード

// 他の HTML は省略します+js 進行状況バーコード
$i = 0;
while( $ i & lt; 100) {
// コンテンツを実行
sleep (1)
// 合計金額と現在のタスク $ i に基づいてタスクの進行状況を計算します
$ i ++;
echo '& lt; script & gt; ''
ob_flash()
flash(); キーそれは、このステップ「// 合計金額と現在のタスク $i に基づいてタスクの進行状況を計算する」のやり方がわからないということです
このステップのやり方を知りたいのですが?
6階のhnxxwyqさんからの返信を引用:
PHPコード
// 他のhtml+jsプログレスバーコードを省略

$i = 0;

while($i<100) {
// 実行内容
sleep(1) );
// 合計量と現在のタスクに基づいてタスクの進行状況 $i を計算します
$i = $i++;
echo '<script>進行状況バーの js を '.$i.'</script&gt ;'; <br /> ob_flash() <br /> flash(); <br /> } <br /> <br /> …… <br /> <br /> 通常、この種の進行状況バーは次のように行われます <br /> まず全体的なタスクを取得し、次にそれを 1 つの次元で定量化し、次に現在の進行状況を取得しますいつでも全体で割って四捨五入してください <br /> <br /> たとえば、ファイル内に読み取る行が x 行あり、各行の内容はサイズが異なりますが、全体の進捗状況と見なすことができます。各行を計算した後の完了の 1/x <br /> <br /> 次に、各行を処理したい場合は、クエリを実行して出力を生成する必要があり、インポート メソッドは各ステップを定量化できる必要があります <br /> <br /> たとえば。 , <br /> $file_size=ファイル内のデータ行数; <br /> $current=0; //最初の行、start<br /> while (未完了) <br /> $current++ を出力します。 * 100; //Continue<br /> } <br /> <br /> 明らかに、これは段階的に処理する必要があります。ファイルを直接インポートおよびエクスポートするために既製の関数を使用する場合、中間の実行は行われません。 <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> 6 階の hnxxwyq からの返信を引用: <br /> PHP コード <br /> // 他の html+ js プログレスバーコードを省略 <br /> $i = 0; <br /> while($i<100) { <br /> // 実行内容 <br /> sleep(1); <br /> // 合計量と現在のタスクに基づいてタスクの進行状況 $i を計算 </p> $i = $i++ ; <p class="sougouAnswer"> echo '<script>進行状況バー js を '.$ に変更しますi.'</script>';
ob_flash()
flash(); }

……

インポートするとき、csv の合計行数は n で、m 行が読み取られると計算できます。固定時間 (効率に応じて変更可能)、m 行が処理されるたびに、最終的な進行率は、floor(i*m / n) * 100 になります。

10階のwxhbbddの返信から引用:

6階のhnxxwyqの返信から引用:
PHPコード
// 他のhtml+jsプログレスバーコードを省略
$i = 0;
while($i<100) {
// コンテンツを実行
sleep(1);
// 合計量と現在のタスクに基づいてタスクの進行状況 $i を計算します
$i = $i++;
echo '

人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート