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

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

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

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

  1. 次に示すように、進行状況バーの HTML コードを HTML ページに追加します。
<div>
   <div></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>
   <div></div>
</div>
  1. HTML ページで、JavaScript を使用してサーバーから進行状況情報を定期的に取得し、進行状況バーのステータスを更新します。コードは次のとおりです。
session_start();
for ($i=0; $i<ol start="3"><li>サーバー側で、フロントエンドの進行状況バーのリクエストに応答し、現在の進行状況情報を返します。以下に簡単な例を示します。 </li></ol><pre class="brush:php;toolbar:false">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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。