我有一个电子商务,我在页面的末尾加载了与主要产品相关的项目的eBay API。
但我注意到请求会使整个页面加载速度减慢4到10秒。
我宁愿加载页面,然后在页面中加载一个模块,所以当用户向下滚动时,eBay项目就会被加载。我知道我可以在JavaScript中尝试这个,但在编码之前,我想知道PHP是否可以处理异步请求。
我目前正在使用CURL。这是我的代码:
$q = 'iphone'
$api = 'https://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsAdvanced&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=remoteco-effectsb-PRD-a38ccaf50-f6906249&RESPONSE-DATA-FORMAT=JSON&REST-PAYLOAD&keywords=';
$url = $api . $q;
$ch = curl_init();
$timeout = 1;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$output = curl_exec($ch);
curl_close($ch);
$array = (array) json_decode($output);
答案 0 :(得分:1)
PHP完成呈现页面后,您无法从同一个脚本接收其他数据。
您可以启动后台任务,但无法使用相同的请求收到结果。
您最好的选择是移动代码以将相关项目提取到另一个PHP脚本并使用Javascript调用它。
那说send chunked responses有办法,但可能不适合你。