2011-11-26 58 views
1

我試圖通過簡單地使用@anywhere API Twitter來在我的網站上放置一個推文框。雖然這工作得很好,是簡單的設置,它具有下列問題吧:Twitter @Anywhere API的替代品?

是否有任何其他替代方案使用@anywhere

編輯:這是我的代碼..

<div id="twitter_widget"> 
     <script src="http://platform.twitter.com/anywhere.js?id=**MYAPPID**&v=1"></script> 
     <script type="text/javascript"> 
     twttr.anywhere(function (T) { 
      T("#twitter_widget").tweetBox({ 
      label: "<span style='display:block !important;margin-bottom:5px !important;font-family:Helvetica Neue !important; color: #CCC !important; font-size: 18px !important; font-weight: 500 !important;'>Tweet</span>", 
      height: 100, 
      width: 300, 
      defaultContent: "" 
      }); 
     }); 
     </script> 
     <button class="check-twitter" onclick="window.open('http://www.twitter.com','_blank');">Go to Twitter</button> 
    </div> 
+0

什麼是您的主機環境? – rds

+0

從Hostgator託管的VPS。 – Charlie

回答

1

我不知道替代@anywhere的。但我不相信3s/14的要求會影響你。

從Twitter的文檔 -

「爲@Anywhere功能全部依賴被異步加載, 點播,以便不影響主機頁面的性能」

總之,這意味着你的頁面是幾乎從Twitter的庫中分離出來。即使Twitter的小部件花費很長時間加載,用戶也應該能夠使用您的頁面。它不能解決「加載14個請求」的問題,但它確保Twitter的性能問題不會成爲你的問題。

請注意,我說差不多是以上。加載外部腳本作爲你的一部分可能會減慢你的整個網站。如果Twitter的服務器面臨問題,則可能會導致Front End Single Point of Failure

更新:Per Twitter, loading anywhere.js asynchronously isn't supported。我在下面提到的解決方案可能會或可能不適合您,謹慎行事。

因此,我能想到的最佳解決方案是異步加載anywhere.js本身。只是你的收盤 </head>


//Assumes jQuery was loaded 

jQuery.getScript("http://platform.twitter.com/anywhere.js?id=&v=1", function(data, textStatus) { 
twttr.anywhere(function (T) { 
      T("#twitter_widget").tweetBox({ 
      label: "Tweet", 
      height: 100, 
      width: 300, 
      defaultContent: "" 
      }); 
     }); 
}); 


把這段代碼 - 如果你使用jQuery,代碼會喜歡這個。它將異步加載anywhere.js,並且僅在js加載後調用twitter的函數。

+1

多麼可憐。是的,@anywhere有很多問題 - 緩慢或有時下降。 – Till

1

如果你想使用@anywhere,你不能做的不多。我一開始就注意到了隨機事件(比如停機時間和什麼)。但通常platform.twitter.com應該足夠快,因爲它是由Akamai提供的。

你是如何確定它是三秒鐘的,究竟需要三秒鐘?整個頁面,或者只是加載外部JS等?

您唯一的選擇是使用另一個不依賴於第三方代碼的選項。這是唯一的快速選項。第三方網站總是會很慢,除非有SLA來保證可用性和性能。

+0

你指的是第三方網站? – Charlie

+0

任何!當您包含來自不在您控制範圍內的域的代碼時,問題始終存在。我們通常會對外部資源進行版本管理(如果可能),並將它們粘貼到「供應商」目錄中,並將它們結合起來進行生產。這在@anywhere中是不可能的。 – Till

+0

只是出於好奇,結合了什麼意思呢? – Charlie

1

另一種方法是讓您的網站成爲Twitter客戶端。這需要您支持oAuth & Twitter API。

+2

你有這方面的指導嗎? – Charlie