ブラウザとサーバー間の通信にはコネクションレス型のHTTPプロトコルしかありません。コネクションレス型プログラムの特徴は、クライアントがサーバーにリクエストを行い、サーバーはリクエストに応じて対応するプログラムを返すことであり、永続的な接続を維持することができません。これにより、クライアントの対応するサーバーが 1 秒または 1 分間実行される可能性があるため、プログラムの実行が遅い場合、ブラウザは常に待機状態になるため、ユーザーはブラウザを閉じることに耐えられない可能性があります。
場合によっては、プログラムの実行結果を気にする必要がなく、時間を無駄にして辛抱強く待つ必要はありません。その場合は、プログラムを待たずにバックグラウンドで静かに実行する方法を見つける必要があります。たとえば、推奨電子メールが 1,000 人のユーザーに送信されるシナリオがあります。ユーザーは電子メール アカウントを入力またはインポートし、送信のためにサーバーに送信します。
リーリーこのコードはユーザーエクスペリエンスが非常に悪く、実際には使用できません。まず、あまりにも多くのメールを送信すると、サーバーがタイムアウトしてしまいます。実際、ユーザーの待ち時間が長いため、ユーザーはシステム製品に対する疑問を抱き、信頼を失うことになります。 。ただし、メッセージを正常に送信する前に、ユーザーは 1,000 件の電子メールがすべて送信されるまで待つ必要はありません。メッセージをバックグラウンドに送信した後、ユーザーにメッセージを送信するよう直接指示し、バックグラウンド プログラムにメッセージを通知せずに送信させることができます。 1つ。
現時点では、コードを実行するために「非同期実行」テクノロジーが必要です。非同期実行の特徴は、ユーザーがコードの実行結果を待つ必要がないことです。
- 単一タスクへのアプリケーションの依存関係を取り除く
- プログラム実行効率の向上
- プログラムの拡張性の向上
- 特定のシナリオにおけるユーザーエクスペリエンスの向上
- PHP はマルチスレッドをサポートしていないため、非同期呼び出しを使用して複数の HTTP をリクエストすると、プログラムの並列実行の効果が得られます。ただし、リクエストされる HTTP リクエストが多すぎると、システムのオーバーヘッドが大幅に増加することに注意してください。
PHP での一般的な非同期実行方法
1. クライアント ページは AJAX テクノロジーを使用してサーバーをリクエストします
最も簡単な方法は、クライアントに返される HTML コードに AJAX 呼び出しを埋め込むか、実行される時間のかかるスクリプトを指す src を含む img タグを埋め込むことです。この方法は最も簡単で最速です。サーバーは呼び出しを行う必要はありません。
しかし、欠点は、通常、Ajax は onLoad の後にトリガーされる必要があることです。つまり、ユーザーがページをクリックして閉じた場合、バックグラウンド スクリプトはトリガーされません。
imgタグを使用した場合、このメソッドは厳密な意味での非同期実行とは言えません。ユーザーのブラウザは、php スクリプトの実行が完了するまで長時間待機します。つまり、ユーザーのブラウザのステータス バーには、常にロード中であることが表示されます。もちろん、スクリプト タグなど、同様の原理を持つ他のメソッドも使用できます。
2.popen()関数
リソース Popen (文字列コマンド、文字列モード);
指定されたコマンドの実行をフォークすることによって生成されたプロセスへのパイプを開きます。指定されたコマンドの実行をフォークすることによって生成されたプロセスへのパイプを開きます。 したがって、呼び出して渡すことはできますが、その出力は無視します。
pclose(popen("/home/xinchen/backend.php &", 'r'));
この方法は、最初の方法の欠点を回避し、高速です。ただし、問題は、このメソッドは HTTP プロトコルを通じて別の Web サービスをリクエストできず、ローカル スクリプト ファイルしか実行できないことです。また、一方向にのみ開くことができ、呼び出されたスクリプトに多数のパラメータを渡すことはできません。また、アクセス数が多ければ、大量のプロセスが生成されます。外部リソースを使用する場合は、競合について自分で考慮する必要があります。
3.カール拡張子
CURL は、POST/GET などの HTTP リクエストをシミュレートし、データを取得して抽出し、「標準出力」(stdout) に表示できる強力な HTTP コマンド ライン ツールです。
リーリーCURL を使用するには、CUROPT_TIMEOUT を 1 に設定する必要があります (最小値は 1 ですが、憂鬱です)。つまり、クライアントは少なくとも 1 秒待つ必要があります。
4. fskoopen() 関数
fsockopen は、ソケット プログラミングをサポートする非常に強力な関数です。fsockopen を使用すると、電子メール送信などのソケット プログラムを実装できます。fcockopen を使用するには、ヘッダー部分を手動で切り離す必要があります。公式ドキュメント: http://cn.php.net/fsockopen/。
れーれー 。
tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ホットトピック









