我正在使用cURL访问我正在构建的网页上的instagrams API。尽管功能很好,但页面加载是牺牲了的。例如,考虑这个DOM结构:
- 收割台
- 文章
- Instagram照片(通过cURL检索)
- 页脚
加载页面时,在使用cURL完全加载instagram照片之前,不会加载页脚。下面是正在调用的cURL函数:
function fetchData($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$result = fetchData("https://api.instagram.com/v1/media/search?lat={$lat}&lng={$lng}&distance={$distance}&access_token={$accessToken}");
$result = json_decode($result);
因此,在运行此函数之后,将显示DOM的其余部分。如果我将函数调用移到页脚下方,它将不起作用。
我能做些什么来加载整个网页并将cURL请求设置在加载网站的顶部吗(不会造成延迟或滞留)?
UPDATE:最好的解决方案是在页脚后加载它,然后用js将它附加到另一个区域吗
您可以将结果json缓存到本地保存的文件中。您可以创建一个每分钟调用一次的cronjob,并更新本地缓存文件。这会使页面加载速度更快。不利的一面是,即使你没有访客,而且instagram的数据延迟了一分钟,你的缓存也在更新。