php 非同期呼び出しメソッド
クライアントとサーバーは HTTP プロトコルを通じて通信し、サーバーはそれを受け取ります。リクエスト後の処理と処理結果の返却。
サーバーは時間のかかる操作を実行する必要があり、この操作の結果をクライアントに返す必要がない場合があります。ただし、PHP は同期的に実行されるため、クライアントは次のステップに進む前にサービスが処理されるまで待つ必要があります。
したがって、時間のかかる操作は非同期実行に適しています。サーバーはリクエストを受信した後、クライアントが必要とするデータを処理してから戻り、時間のかかる操作を実行します。サーバー上で非同期的に操作を実行します。
原則、サーバーreturns Ajax コードまたは img タグを html に挿入します。img の src は実行する必要があるプログラムです。
利点: 実装が簡単で、サーバーは呼び出しを実行する必要がありません。
欠点: 実行中、ブラウザは常にロード状態であるため、このメソッドは真の非同期呼び出しではありません。
$.get("doRequest.php", { name: "fdipzone"} );
<img src="doRequest.php?name=fdipzone">
popen を使用してコマンドを実行します。構文は次のとおりです。
// popen — 打开进程文件指针 resource popen ( string $command , string $mode )
pclose(popen('php /home/fdipzone/doRequest.php &', 'r'));
#利点: 高速実行
欠点: 1. このマシンでのみ実行可能
## 2. 多数のパラメータを渡すことはできません3. アクセス数が多いと多くのプロセスが作成されます。
<?php
$ch = curl_init();
$curl_opt = array(
CURLOPT_URL, 'http://www.example.com/doRequest.php'
CURLOPT_RETURNTRANSFER,1,
CURLOPT_TIMEOUT,1
);
curl_setopt_array($ch, $curl_opt);
curl_exec($ch);
curl_close($ch);
?>
<?php $url = 'http://www.example.com/doRequest.php'; $param = array( 'name'=>'fdipzone', 'gender'=>'male', 'age'=>30 ); doRequest($url, $param); function doRequest($url, $param=array()){ $urlinfo = parse_url($url); $host = $urlinfo['host']; $path = $urlinfo['path']; $query = isset($param)? http_build_query($param) : ''; $port = 80; $errno = 0; $errstr = ''; $timeout = 10; $fp = fsockopen($host, $port, $errno, $errstr, $timeout); $out = "POST ".$path." HTTP/1.1\r\n"; $out .= "host:".$host."\r\n"; $out .= "content-length:".strlen($query)."\r\n"; $out .= "content-type:application/x-www-form-urlencoded\r\n"; $out .= "connection:close\r\n\r\n"; $out .= $query; fputs($fp, $out); fclose($fp); } ?>
ignore_user_abort(true); // 忽略客户端断开 set_time_limit(0); // 设置执行不超时
fsockopen
の導入と使い方については、以前に書いた「php」を参照してください。 fsockopen GET/POST を使用してフォームを送信し、ファイルをアップロードする」および「PHP HTTP リクエスト クラス、GET、POST、Multipart/form-data をサポートする」 この記事では、PHP の非同期呼び出しメソッドの使用方法について説明します。詳細 関連コンテンツについては、php 中国語 Web サイトに注目してください。 関連する推奨事項: php 文字列圧縮方法の比較について
php タイマー ページの実行時間の監視についてクラス
##さまざまな数のパラメータをサポートする PHP コンストラクターのメソッドの紹介
#
以上がPHPを使用してメソッドを非同期に呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。