5

我想在网页上显示用户的最新推文,同时保持使用自定义 CSS 设置推文样式的能力,并保持良好的页面加载速度。

我设法以两种方式显示最新的推文。

  1. 使用PHP Twitter 库(作者 Aaron Brazell)。通过使用这种方法,我的 PHP 代码必须等待来自 Twitter 的响应,然后才能完成我的页面并将其发送到客户端。这可能会导致页面加载时间非常不可预测,并且很可能会减慢页面加载速度,从而让用户感到厌烦。

  2. 使用 Blogger Twitter 小部件,在加载页面的其余部分后,使用 JavaScript 加载最新的推文。这样用户就不必等待 Twitter 响应才能查看页面。

我想知道使用这些不同的方法来显示用户的最新推文是否还有其他优点和缺点,以及是否有其他解决方案我可以研究它可以启用自定义 CSS 样式并提供良好的页面加载性能?

另外,这两种方法如何影响 Twitter 应用速率限制的方式?使用 PHP,我可以缓存推文,从而减少对 Twitter 的调用,而使用 JavaScript,据我所知这是不可能的?

4

8 回答 8

10

您可以通过两种方式自定义 CSS 样式,所以这应该不是问题

  1. 使用 PHP api 时,请尝试缓存您需要的所有信息并将其放入例如。数据库(每 5-10 分钟查询一次 twitter,或通过 cron 运行更新脚本 - 因为我上次检查了 twitter 中的查询有限制,您可以在特定时间执行)

  2. 通过使用 Javascript 更新推文,您可以禁用网络蜘蛛在您的页面上索引这些推文(也禁用的人通常没有启用 JS...)

编辑

另请注意,您将需要更多的 PHP 编码来实现缓存,但这是一种非常好的编码体验(另一方面,很容易实现 JavaScript 脚本来从 twitter 获取更新等内容)

Twitter API 速率限制

如 twitter.api 上所述:Twitter 将 REST 请求限制为150 个请求/小时(使用基于 IP 的规则或计算经过身份验证的 API 使用的请求)

GET请求,例如获取 twitter 提要、通过 rest api 的时间线确实很重要

更新状态等POST请求不计算在内

帐户速率限制状态可用http://twitter.com/account/rate_limit_status.format,您可以在其中查看在指定时间限制内可以执行多少请求

于 2010-01-20T10:07:43.040 回答
3
  1. Pro:完全独立于用户的设置。缺点:你说的 - 如果 Twitter 很慢,那么你的网站很慢 + 来自服务器的额外请求 -> 增加了服务器负载等。

  2. 优点:服务器的工作量减少 - 加载速度仅取决于服务器的速度。缺点:不是每个人都启用了 JavaScript,即便如此,你也可能会在 Twitter 的内容弹出时出现难看的延迟。

我个人会选择选项#1。

于 2010-01-20T10:07:51.167 回答
1

尝试使用 sweetcron。你可以让它成为一个 cron 工作。它将获取 Twitter 提要并将它们放入数据库。所以 twitter refrence 不会影响您的页面加载。

更多细节在这里:http ://code.google.com/p/sweetcron/

于 2010-01-20T14:07:24.647 回答
0

我的意见 - 在客户端做。

  1. 为什么要在这上面浪费你的 CPU 时间?让客户处理这个。
  2. 谷歌会将它编入索引,当用户在那里浏览时,他会看到不同的东西。
于 2010-01-20T10:06:47.567 回答
0

我会采用更灵活和稳定的方法:

在后台重复检查新推文(例如每 5 分钟)并将它们存储在您的数据库中。所以你所有的推文都在你自己的服务器上。这也可以防止您的网站在 twitter 关闭时加载很长时间。更不用说当 JS 被禁用时它也可以工作;)

这里是延迟,但你可以减少睡眠时间,但实际上我认为 5 分钟已经足够短了。

当您的访问者启用了 JS 并且您希望它更有活力时,您可以使用一些 AJAX 更新您的推文。

于 2010-01-20T10:28:06.570 回答
0

我真的无法在已经提到的内容中添加任何内容。

PHP 将是最好的方法,但请确保定期缓存结果。您可以使用任何 PHP 的内置 XML/DOM 树解析器简单地解析您的 Twitter 个人资料的 RSS 提要,以您需要的任何格式输出,并且这种样式随您的意愿而定。

如前所述,使用 JavaScript 方法显示推文的缺点是,它不会被搜索引擎蜘蛛抓取,并且不适用于禁用 JavaScript(自然)的访问者。

于 2010-01-20T10:33:13.823 回答
0

两者都使用 PHP 构建推文列表,然后在客户端运行一个简单的 jQuery 插件(或类似的东西)以使其保持最新。

  • 适用于没有 JavaScript 的客户端
  • 允许您实现服务器端缓存
  • 谷歌会将其编入索引(这可能很好?)
于 2010-01-20T10:38:00.370 回答
0

在我的网站上,我的解决方案是正常加载页面,然后包含一些代码以显示仍有数据。然后我有一个使用 AJAX 访问的 PHP 脚本,它从 Twitter 加载数据并以一种很好的方式输出它——我没有实现缓存,因为我的流量非常低,但我将来可以。我还<noscript>为那些没有 Javascript 的不寻常的人准备了一个带有 iFrame 的标签!

我选择这种方法是因为它可以让我让用户非常快速地看到页面,但他们稍后仍然可以看到推文。

于 2010-05-17T09:23:30.720 回答