0

我正在使用 cURL 访问我正在构建的网页上的 instagrams API。该功能效果很好,但是牺牲了页面加载。例如,考虑这个 DOM 结构:

  • 标题
  • 文章
  • Instagram 照片(通过 cURL 检索)
  • 页脚

加载页面时,直到使用 cURL 完全加载 instagram hotos 后才会加载页脚。下面是被调用的 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 请求设置在加载站点的顶部(不会导致延迟或阻塞)?

更新: 最好的解决方案是在页脚之后加载它,然后用 js 将它附加到另一个区域?

4

1 回答 1

0

You can cache the result json into a file that is saved locally. You can make a cronjob that is called ever minute and update the locally cache file. This makes your page loading much more faster. The downside is that your cache is updating even when you don't have visitors and you have a delay of a minute in data from instagram.

于 2013-07-24T20:22:13.827 回答