2014-09-12 71 views
0

我有問題,使用PHP的Instagram API。 Instagram的API網址是以下幾點:Instagram的API與CURL慢,jQuery的AJAX快

https://api.instagram.com/v1/media/popular?client_id=c32bb75ba2b449dc93b5461a84d9003e

使用此:https://github.com/cosenary/Instagram-PHP-API

在我的PHP腳本如下代碼:

<?php 
$instagram = new Instagram('c32bb75ba2b449dc93b5461a84d9003e'); 
$response = $instagram->getPopularMedia(); 
header('Content-Type: application/json'); 
echo json_encode($response, JSON_PRETTY_PRINT); 

腳本執行有時不再那麼40秒,時有時無結果。

同樣的問題是簡單的電話:

<?php 
echo file_get_contents('https://api.instagram.com/v1/media/popular?client_id=c32bb75ba2b449dc93b5461a84d9003e') 

像這樣簡單的jQuery AJAX請求(同一臺服務器上):

$.ajax({ 
     dataType: "jsonp", 
     cache: false, 
     url: "https://api.instagram.com/v1/media/popular?client_id=c32bb75ba2b449dc93b5461a84d9003e", 
     success: function(data) { 
      console.log(data); 
     } 
    }); 

結果來一直非常快。

我在不同的服務器上嘗試這兩種方法,結果相同。同樣在PHP類中,我嘗試使用file_get_content而不是CURL,但都是一樣的。

請幫忙(使用PHP)。

回答

1
  • 當使用AJAX,(說到你的網絡瀏覽器)打開與instagram的連接。
  • 使用PHP時,您的Web服務器將打開與instagram的連接。

這意味着:從web服務器到instagram的連接可能很慢,因爲您的web服務器很遠,或者使用了非常糟糕的路徑,或者(您的代碼更可能的解釋)在一個非常糟糕的主機上,它限制了網絡服務器內的腳本帶寬。

您可以通過嘗試獲取其他Web服務或網站的內容來進行調試。

+0

是http://www.modpagespeed.com/很好的解決方案嗎? – Vlatko 2014-09-14 21:48:06

+0

@Vlatko - 不是。 modpagespeed用於通過縮小網頁,壓縮網頁等來優化網頁的速度。它不會對instagram的問題產生任何影響。 – Nick 2015-03-31 06:10:12

+0

只需在這裏添加評論,Instagram的API非常非常緩慢,可悲的是與服務器位置無關,但更多的是與他們最後的事情有關。即使有最簡單的要求,我們也會發現最多需要20秒才能獲得回覆。 – designermonkey 2015-04-08 15:21:42

0

add連接:接近您發送的HTTP頭。在PHP: header('Connection:close');