ホームページ  >  記事  >  バックエンド開発  >  PHPの4種類の非同期呼び出しの詳細説明、PHP_PHPチュートリアルの4種類の非同期呼び出しの詳細説明

PHPの4種類の非同期呼び出しの詳細説明、PHP_PHPチュートリアルの4種類の非同期呼び出しの詳細説明

WBOY
WBOYオリジナル
2016-07-12 08:57:101462ブラウズ

PHPの4つの非同期呼び出し方法を詳しく解説、PHPの4つの非同期呼び出し方法を詳しく解説

ブラウザとサーバー間の接続と通信は、HTTPプロトコルを介して行われます。これは、リクエストとレスポンスのモデルに基づいたプロトコルです。ブラウザは URL を通じてサーバーへのリクエストを開始し、Web サーバーはリクエストを受信し、プログラムを実行し、対応する HTML コードをクライアントに送信して応答します。

Webサーバーがプログラムを実行する際、数ミリ秒で完了する場合もあれば、数分以内に完了しない場合もあります。プログラムの実行が遅い場合、ユーザーはそれ以上待つ忍耐力がなくなり、ブラウザを閉じる可能性があります。

場合によっては、これらの時間のかかるスクリプトの戻り結果を気にしないこともありますが、次のステップに進む前に、スクリプトの実行が完了して戻るまで待つ必要があります。
それでは、これらの時間のかかるスクリプトの呼び出しを単純にトリガーして次のステップに進み、これらの時間のかかるスクリプトをサーバー側でゆっくり実行できるようにする方法はあるのでしょうか?

テスト後、いくつかの方法をまとめて共有します:

1. 最も簡単な方法は、クライアントに返される HTML コードに AJAX 呼び出しを埋め込むか、実行される時間のかかるスクリプトを指す src を含む img タグを埋め込むことです。
この方法は最も簡単で最速です。サーバーは呼び出しを行う必要はありません。
ただし、一般に、Ajax は onLoad の後にトリガーされる必要があるという欠点があります。つまり、ユーザーがページをクリックして閉じた場合、バックグラウンド スクリプトはトリガーされません。
imgタグを使用した場合、このメソッドは厳密な意味での非同期実行とは言えません。ユーザーのブラウザは、php スクリプトの実行が完了するまで長時間待機します。つまり、ユーザーのブラウザのステータス バーには、常にロード中であることが表示されます。
もちろん、スクリプト タグなど、同様の原理を持つ他のメソッドも使用できます。

2.ぽぺん()

リーリー

したがって、呼び出して渡すことはできますが、その出力は無視してください。

pclose(popen("/home/xinchen/backend.php &", 'r'));
この方法は、最初の方法の欠点を回避し、高速です。ただし、問題は、このメソッドは HTTP プロトコルを通じて別の Web サービスをリクエストできず、ローカル スクリプト ファイルしか実行できないことです。また、一方向にのみ開くことができ、呼び出されたスクリプトに多数のパラメータを渡すことはできません。
また、アクセス数が多ければ、大量のプロセスが生成されます。外部リソースを使用する場合は、競合について自分で考慮する必要があります。

3. カールを使用します
このメソッドは、CUROPT_TIMEOUT を 1 に設定します (最小値は 1、憂鬱です)。つまり、クライアントは少なくとも 1 秒待つ必要があります。

リーリー

4. fsockopen を使用します
この方法は最も完璧なはずですが、HTTP ヘッダー部分を自分で記述する必要があるという欠点があります。

リーリー

したがって、総合的に見て、最良かつ最も簡単な方法は最初の方法です。
最も完璧なものは最後のものになるはずですが、それはより複雑です。
上記は PHP で非同期呼び出しを実装する 4 つの方法です。皆さんの学習に役立つことを願っています。

興味があるかもしれない記事:

  • PHP 非同期呼び出しメソッドの研究と共有
  • PHP 非同期呼び出しソケット実装コード
  • C# 非同期呼び出しの利点とメソッド共有
  • 非同期呼び出し Web サービスが空の応答 XML を返す問題の解決策
  • PHP が非同期呼び出しを使用してデータを取得するときに発生する問題の解決策 (エラー c00ce56e により、この操作を完了できません)
  • C# デリゲートの 3 つの呼び出し例 (同期呼び出し、非同期呼び出し、非同期コールバック)
  • A jqueryの簡単な分析 ajaxの非同期呼び出しメソッドのあげられない理由と解決策 グローバル変数の代入の理由と解決策
  • phpの非同期呼び出しメソッドの実装例
  • JAVAの非同期呼び出しサンプルコード

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1110080.html技術記事 PHP 非同期呼び出しの 4 つの方法の詳細な説明 HTTP プロトコルを介したブラウザとサーバー間の 4 種類の PHP 非同期通信の詳細な説明。これはリクエストとレスポンスのモデルに基づいたプロトコルです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。