PHP异步调用实现方式_PHP教程
浏览器和服务器之间只一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求输出相应的程序,不能保持持久连接。
这样就出现了一个问题,一个客户端的相应服务端可能执行1秒也有可能执行1分钟,这样浏览器就会一直处于等待状态,如果程序执行缓慢,用户可能就没耐心关掉了浏览器。
而有的时候我们不需要关心程序执行的结果,没有必要这样浪费时间和耐心等待,那我们就要想出办法让程序不收等待在后台静默执行。
比如现在有一个场景,给1000个用户发送一封推荐邮件,用户输入或者导入邮件账号了提交服务器执行发送。
{
sendmail(.....);//发送邮件 } ?>
这段代码用户体验极差,也无法实际运用,首先发送这么多邮件会产生服务器运行超时,其实漫长的用户等待时间会让用户对系统产品怀疑和失去信心。但是用户不需要等待到1000封邮件都发送完毕了才提交发送成功,我们完全可以提交后台后直接给用户提示发送成功,然后让后台程序静默依次发送。
这个时候我们就需要“异步执行”技术来执行代码,异步执行的特点是后台静默执行,用户无需等待代码的执行结果,使用异步执行的好处:
1.摆脱了应用程序对单个任务的依赖性
2.提高了程序的执行效率
3.提高了程序的扩展性
4.在一定场景提高了用户体验
5.因为PHP不支持多线程,使用异步调用的请求多个HTTP的方式达到了程序并行执行效果,但是注意的是请求的HTTP过多的话,会大大加大了系统的开销
PHP异步执行的常用方式:
1.客户端页面采用AJAX技术请求服务器
1. 最简单的办法,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。
这种方法最简单,也最快。服务器端不用做任何的调用。
但是缺点是,一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。
而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。
当然,还可以使用其他的类似原理的方法,比如script标签等等
2.popen()函数
resource popen ( string command, string mode );
//打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。
所以可以通过调用它,但忽略它的输出。
?
pclose(popen( "/home/xinchen/backend.php &" , 'r' ));
这个方法避免了第一个方法的缺点,并且也很快。但是问题是,这种方法不能通过HTTP协议请求另外的一个WebService,只能执行本地的脚本文件。并且只能单向打开,无法穿大量参数给被调用脚本。
并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。
3.CURL扩展
CURL是一个强大的HTTP命令行工具,可以模拟POST/GET等HTTP请求,然后得到和提取数据,显示在"标准输出"(stdout)上面
$ch = curl_init();
$curl_opt = array(CURLOPT_URL, 'http://www.example.com/backend.php',
CURLOPT_RETURNTRANSFER, 1,
CURLOPT_TIMEOUT, 1,);
curl_setopt_array($ch, $curl_opt);
curl_exec($ch);
curl_close($ch);
使用CURL需要设置CUROPT_TIMEOUT为1(最小为1,郁闷)。也就是说,客户端至少必须等待1秒钟。
4.fscokopen()函数
fsockopen是一个非常强大的函数,支持socket编程,可以使用fsockopen实现邮件发送等socket程序等等,使用fcockopen需要自己手动拼接出header部分
官方文档: http://cn.php.net/fsockopen/
?
$fp = fsockopen ( "www.2cto.com" , 80, $errno , $errstr , 30);
if (! $fp ) {
echo "$errstr ($errno)
\n" ;
} else {
$out = "GET /backend.php / HTTP/1.1\r\n" ;
$out .= "Host: www.2cto.com\r\n" ;
$out .= "Connection: Close\r\n\r\n" ;
fwrite( $fp , $out );
/*忽略执行结果
while (!feof($fp)) {
echo fgets($fp, 128);
}*/
fclose( $fp );
}
摘自qeenoo

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Coinbase 보안 로그인 안내서 : 피싱 사이트 및 사기를 피하는 방법은 무엇입니까? 피싱과 사기는 점점 더 만연해지고 있으며 Coinbase 공식 로그인 포털에 안전하게 액세스하는 것이 중요합니다. 이 기사는 사용자가 코인베이스의 최신 공식 로그인 포털을 안전하게 찾아 사용하여 디지털 자산의 보안을 보호 할 수 있도록 실용적인 가이드를 제공합니다. 우리는 피싱 사이트를 식별하는 방법과 공식 웹 사이트, 모바일 앱 또는 신뢰할 수있는 타사 플랫폼을 통해 안전하게 로그인하는 방법을 다루고 강력한 비밀번호 사용 및 2 요인 검증 가능성과 같은 계정 보안을 향상시키기위한 제안을 제공합니다. 잘못된 로그인으로 인한 자산 손실을 피하려면이 기사를주의 깊게 읽으십시오!

세계 최고의 디지털 자산 거래 플랫폼 인 Ouyi Okx는 풍부한 거래 제품, 강력한 보안 보증 및 편리한 사용자 경험으로 많은 투자자를 유치합니다. 그러나 네트워크 보안의 위험이 점점 심해지고 있으며 공식 OUYI OKX 계정을 안전하게 등록하는 방법이 중요합니다. 이 기사는 OUYI OKX 공식 웹 사이트의 최신 등록 포털을 제공하고 공식 웹 사이트를 식별하고 강력한 암호를 설정하고 2 인용 암호 검증을 활성화하는 방법을 포함하여 안전한 등록 단계와 예방 조치를 자세히 설명하여 디지털 자산 투자 여행을 안전하고 편리하게 시작하는 데 도움이됩니다. 디지털 자산 투자에는 위험이 있습니다. 신중한 결정을 내리십시오.

이 기사는 중국의 Ouyi Okx 앱의 안전한 다운로드에 대한 자세한 안내서를 제공합니다. 국내 앱 스토어의 제한으로 인해 사용자는 OUYI OKX의 공식 웹 사이트를 통해 앱을 다운로드하거나 공식 웹 사이트에서 제공 한 QR 코드를 사용하여 스캔 및 다운로드하는 것이 좋습니다. 다운로드 프로세스 중에 공식 웹 사이트 주소를 확인하고 응용 프로그램 권한을 확인하고 설치 후 보안 스캔을 수행하며 2 요인 확인을 활성화하십시오. 사용하는 동안 현지 법률 및 규정을 따르고, 안전한 네트워크 환경을 사용하고, 계정 보안을 보호하고, 사기에 대해 경계하고, 합리적으로 투자하십시오. 이 기사는 참조 용이며 투자 조언은 자신의 위험에 처해 있습니다.

이 기사는 안전하고 신뢰할 수있는 Binance Exchange 앱 다운로드 가이드를 제공하여 사용자가 국가에서 Binance 앱 다운로드 문제를 해결할 수 있도록 도와줍니다. 국내 애플리케이션 상점에 대한 제한으로 인해이 기사는 Binance 공식 웹 사이트에서 APK 설치 패키지를 다운로드하는 데 우선 순위를두고 있으며 공식 웹 사이트 다운로드, 제 3 자 애플리케이션 상점 다운로드 및 동시에 공식 웹 사이트 주소를 확인하는 동안 보안 예방 조치를 강조합니다. 또한이 기사는 사용자에게 현지 법률 및 규정을 이해하고, 네트워크 보안에주의를 기울이고, 개인 정보 보호, 사기, 합리적 투자를 조심하고, 보안 거래를 조심해야한다고 상기시킵니다. 기사가 끝나면 기사는 Binance 앱 다운로드 및 사용이 현지 법률 및 규정을 준수해야하며 자신의 위험에 따라 투자 조언을 구성하지 않는다는 점을 다시 한 번 강조했습니다.

이 기사는 사용자가 Bitmex Exchange의 최신 공식 웹 사이트에 액세스하고 거래 보안을 개선 할 수 있도록 안전하고 신뢰할 수있는 가이드를 제공합니다. 규제 및 사이버 보안 위협으로 인해 공식 Bitmex 웹 사이트를 식별하고 피싱 웹 사이트가 계정 정보 및 자금을 훔치는 것을 피하는 것이 중요합니다. 이 기사는 신뢰할 수있는 cryptocurrency 플랫폼, 공식 소셜 미디어, 뉴스 미디어 및 공식 이메일을 통해 공식 웹 사이트 포털 검색을 소개합니다. HTTPS 연결, 보안 증명서 확인 및 정기적으로 비밀번호 변경을 사용하여 도메인 이름을 확인하는 것의 중요성을 강조합니다. cryptocurrency 거래는 위험이 높습니다.주의해서 투자하십시오.

한 번만 알려진 블록 체인 게임이자 소셜 애플리케이션 개발 플랫폼 토큰 인 Loom Coin은 2018 년 4 월 25 일에 코인 당 약 0.076 달러의 문제 가격으로 2018 년 4 월 25 일에 개최되었습니다. 이 기사는 시장 변동성 위험 및 프로젝트 개발 전망을 포함하여 직기 동전의 발행 시간, 가격 및 중요한 예방 조치에 대한 심층적 인 논의를 수행 할 것입니다. 투자자는 조심해야하며 트렌드를 맹목적으로 따르지 않아야합니다.이 기사의 공식 웹 사이트, 블록 체인 브라우저 및 Cryptocurrency 정보 플랫폼을 참조하십시오. 직기 동전에 대해 배우고 여기에서 시작하십시오!

Coinbase Exchange 웹 버전은 편의로 인기가 있지만 안전한 액세스가 중요합니다. 이 기사는 사용자가 공식 코인베이스 웹 버전에 안전하게 로그인하고 피싱 웹 사이트 및 해커를 피하도록 안내합니다. 우리는 검색 엔진, 신뢰할 수있는 타사 플랫폼 및 공식 소셜 미디어를 통해 공식 포털을 검증하는 방법을 자세히 설명하고 주소 변호사 보안 잠금 확인, 2 요인 확인, 공개 Wi-Fi를 피하고, 정기적으로 암호 변경 및 디지털 자산의 보안을 보장하기 위해 전자 메일을 피하는 것과 같은 보안 조치를 강조합니다. 공식 코인베이스 웹 사이트에 대한 올바른 액세스는 디지털 통화를 보호하는 첫 번째 단계는 디지털 통화 거래를 안전하게 시작하는 데 도움이됩니다.

베테랑 cryptocurrency 파생 상품 거래 플랫폼으로서 공식 웹 사이트 입학의 정확성이 중요합니다. Phishing 웹 사이트로 인해 가짜 웹 사이트로의 오해 입력은 도난과 자금 손실로 이어질 수 있습니다. 이 기사는 사용자가 Bitmex 공식 웹 사이트에 안전하게 액세스하고 신뢰할 수있는 cryptocurrency 정보 플랫폼 (예 : CoinmarketCap, Coingecko), 공식 소셜 미디어, 기존 주소 검증 및 공식 지원 채널의 검증, 2 인용 검증, 정기적 인 암호 변경 및 보안 소프트웨어의 사용을 강조하여 사용자에게 영향을 미치고 보안을 피할 수 있도록 강조합니다.
