我试图通过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 :(得分: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: ""
});
});
});
在结束</head>
之前放置此代码。它将异步加载anywhere.js,并且仅在js加载后调用twitter的函数。
<击> 撞击>
答案 1 :(得分:1)
如果你想使用@anywhere,你就无法做很多事情。我一开始就注意到了随机的事情(比如停机时间和什么都没有)。但通常 platform.twitter.com 应该足够快,因为它是由Akamai提供的。
你是如何确定它的三秒钟,究竟需要三秒钟?整个页面,或只是加载外部JS等?
您唯一的其他选择是使用不依赖于包含第三方代码的其他选项。这是唯一的快速选择。第三方网站总是很慢,除非有一个保证可用性和性能的SLA。
答案 2 :(得分:1)
另一种方法是让您的网站成为Twitter客户端。这要求你支持oAuth&amp; twitter API。