ホームページ > バックエンド開発 > PHPの問題 > PHPでプログレスバーを実装する方法

PHPでプログレスバーを実装する方法

PHPz
リリース: 2023-04-19 10:36:09
オリジナル
1702 人が閲覧しました

インターネット アプリケーションの継続的な開発に伴い、Web 開発は非常に重要な分野になりました。一般的に使用されるサーバー スクリプト言語として、PHP は Web 開発で広く使用されています。中でも、大量のデータの処理やファイルのアップロード、ダウンロードなどの操作では、必然的にプログレスバーの使用が必要となり、操作の進捗をより直感的に感じることができます。この記事では、読者がこの機能をより適切に適用できるように、PHP でプログレス バーを実装するためのいくつかの方法とテクニックを紹介します。

1. プログレスバーの AJAX 実装

Ajax は JavaScript と XML 技術を利用した非同期通信技術で、ページ全体を更新せずにページの一部を更新することができます。 bar はアプリケーションの 1 つです。具体的な実装手順は次のとおりです。

  1. 次に示すように、進行状況バーの HTML コードを HTML ページに追加します。
<div id="progressBar">
   <div id="progress"></div>
</div>
ログイン後にコピー
ログイン後にコピー
  1. AJAX を定義します。 Javascript でのリクエストは、非同期通信を通じてバックエンド コードに進行状況情報を送信します。以下は簡単な例です。
function uploadFile() {
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener('progress', function(e) {
        var percent = e.loaded / e.total * 100;
        document.getElementById('progress').style.width = percent + '%';
    }, false);
    xhr.open('POST', 'upload.php');
    xhr.send(formData);
}
ログイン後にコピー
  1. バックエンド コードは進行状況情報を受信した後、対応する処理と操作を実行し、処理結果をフロントエンドに返します。コードは次のとおりです。
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');

echo "data: {$percent}%\n\n";
flush();
ログイン後にコピー

このメソッドを使用すると、大きなファイルをアップロードまたはダウンロードするときに、進行状況バーの進行状況をページ上にリアルタイムで表示できるため、ユーザーはファイルのステータスを理解できます。操作がより明確になります。

2. Session を使用してプログレス バーを実装する

Session は、ユーザー セッション情報を保存するためのメカニズムです。 Session を使用して進行状況情報を保存し、それをリアルタイムでフロントエンド ページに渡して進行状況バーのステータスを更新できます。具体的な実装手順は次のとおりです。

  1. 次に示すように、進行状況バーの HTML コードを HTML ページに追加します。バックエンド コード、および進行状況情報をセッションに保存します。以下に簡単な例を示します。
<div id="progressBar">
   <div id="progress"></div>
</div>
ログイン後にコピー
ログイン後にコピー
  1. HTML ページで、JavaScript を使用してサーバーから進行状況情報を定期的に取得し、進行状況バーのステータスを更新します。コードは次のとおりです。
session_start();
for ($i=0; $i<=100; $i++) {
    $_SESSION['progress'] = $i;
    // 文件处理或上传下载等操作
}
ログイン後にコピー
  1. サーバー側で、フロントエンドの進行状況バーのリクエストに応答し、現在の進行状況情報を返します。以下に簡単な例を示します。
setInterval(function() {
   var xhr = new XMLHttpRequest();
   xhr.open('GET', 'progress.php');
   xhr.onload = function() {
      var percent = parseInt(xhr.responseText);
      document.getElementById('progress').style.width = percent + '%';
   };
   xhr.send(null);
}, 1000);
ログイン後にコピー
    この実装方法は非常に単純で、データ量が少ない場合にプログレス バーの効果を非常によく実現できます。ただし、いくつかの欠点もあります。たとえば、同時実行性が高い状況では、リクエストが多すぎてサーバーのパフォーマンスに影響を与える可能性があります。この場合、プログレス バーを実装するには他の方法を検討できます。
  1. 3. プログレス バーを実装するためのサードパーティ ライブラリ

さらに、プログレス バー機能を実装するために使用できるサードパーティ ライブラリが多数あります。これらのライブラリの一部は、Bootstrap、jQuery、NProgress など、無料のオープン ソースです。これらを使用すると、困難なコード作成が大幅に簡素化され、開発効率が向上します。

たとえば、ブートストラップ ライブラリを使用して進行状況バーを実装するには、関連する CSS および JS ファイルを HTML ページに導入し、進行状況バーの HTML コードを定義するだけです:

session_start();
if (isset($_SESSION['progress'])) {
    echo $_SESSION['progress'];
} else {
    echo "0";
}
ログイン後にコピー

これは実現可能です。 動的効果を備えた進行状況バー。style 属性の値を変更することで、いつでも進行状況バーの進行状況を制御できます。

概要

プログレス バーは、大量のデータの処理、ファイルのアップロードとダウンロード、その他の操作において重要な役割を果たす、一般的に使用される Web 機能です。この記事では、PHP でプログレス バーを実装する 3 つの方法 (Ajax、セッション、サードパーティ ライブラリ) を紹介します。各方法には長所と短所があり、進行状況バーを実装するために自分に合った方法を選択できます。この記事が、読者が PHP テクノロジーをより適切に適用してプログレス バー機能を実装するのに役立つことを願っています。

以上がPHPでプログレスバーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート