【问题标题】:Alternatives to Twitter @Anywhere API?Twitter @Anywhere API 的替代品?
【发布时间】:2011-11-26 05:18:32
【问题描述】:

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

【问题讨论】:

  • 您的托管环境是什么?

标签: performance twitter twitter-anywhere


【解决方案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 本身。如果您使用的是 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: ""
            });
        });
});


将此代码放在关闭&lt;/head&gt; 之前。它将异步加载anywhere.js,只有在js加载完成后才调用twitter的函数。

【讨论】:

  • 真可怜。是的,@anywhere 有很多问题 - 缓慢或有时会下降。
【解决方案2】:

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

您如何确定它是三秒,以及究竟需要三秒?整个页面,还是只是加载外部JS等?

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

【讨论】:

  • 您指的是哪些第三方网站?
  • 任何!当您包含不在您控制范围内的域中的代码时,这始终是问题所在。我们通常对外部源进行版本控制(如果可能)并将它们粘贴在“供应商”目录中并将它们组合起来用于生产。 @anywhere 无法做到这一点。
  • 只是出于好奇,那你说的组合是什么意思?
  • 这个链接很好地解释了它:code.google.com/speed/page-speed/docs/… - 您基本上可以最大限度地减少构建页面所需的往返行程。在顶部压缩/缩小,它将加载一个文件而不是例如10 个来自不同的 URL。保存 DNS 查找并使您自己的网站更加健壮,因为您不依赖其他人来保持他们的网站正常运行等。
  • 啊,我以为你是这个意思。我想使用@anywhere 以外的东西的全部原因就是出于这个原因。我正在为 iPad 编写一个网络应用程序,我将这个非常密集的应用程序减少到 8 个请求(+ 一切都被抓住并缩小了),其中包括我使用的一个图像(精灵)。这很好,但是我必须包含@anywhere,它提出了 14 个以上的请求,使得完整的加载时间比我想要的要长得多。另外,我无法控制 Twitter。
【解决方案3】:

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

【讨论】:

  • 你有这方面的指南吗?
猜你喜欢
  • 2023-02-09
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 2014-08-16
  • 2011-11-19
  • 1970-01-01
相关资源
最近更新 更多