1

我试图通过简单地使用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>
4

3 回答 3

1

我不知道@anywhere 的替代品。但我不相信 3s / 14 请求会影响你。

来自 Twitter 的文档 -

“@Anywhere 功能的所有依赖项都是异步加载的,按需加载,以免影响主机页面的性能”

简而言之,这意味着您的页面几乎与 Twitter 的库分离。即使 Twitter 的小部件需要很长时间才能加载,用户也应该能够使用您的页面。它不能解决“加载 14 个请求”的问题,但它确保 Twitter 的性能问题不会成为您的问题。

请注意,我几乎在上面说。作为您的一部分加载外部脚本可能会减慢整个站点的速度。如果 Twitter 的服务器遇到问题,可能会导致前端单点故障

更新:根据 Twitter,不支持异步加载anywhere.js。我在下面提到的解决方案可能适合您,也可能不适合您,请谨慎行事。

因此,我能想到的最佳解决方案是异步加载anywhere.js 本身。如果您使用的是 jQuery,则代码如下所示 -


//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: ""
            });
        });
});


将此代码放在您关闭之前</head>。它将异步加载anywhere.js,并且只有在js加载后才调用twitter的函数。

于 2011-12-05T17:33:37.000 回答
1

另一种方法是让您的网站成为 Twitter 客户端。这需要您支持 oAuth 和 twitter API。

于 2011-12-06T14:27:20.857 回答
1

如果你想使用@anywhere,你无能为力。我一开始就注意到随机的事情(比如停机时间等等)。但一般来说, platform.twitter.com应该足够快,因为它由 Akamai 提供服务。

你是如何确定它是三秒的,三秒究竟是什么?整个页面,还是只是加载外部JS等?

您唯一的其他选择是使用另一个不依赖于包含第三方代码的选项。这是唯一快速的选择。第三方网站总是很慢,当然除非有保证可用性和性能的 SLA。

于 2011-12-06T00:02:57.197 回答