我目前正在为每个页面加载请求一个Twitter提要(我知道这是错误的),如下所示:
json_decode(file_get_contents("http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}"));
即使流量最小,Twitter也不久就停止向我发送请求。因此,在为我的客户启动网站后 - 我看到永远不可用的推特。
我想象这个工作的方式是检查Feed - 将其存储在带有时间戳的表中,并选择间隔 - (例如10分钟)。在每个页面加载上,检查时间戳,如果间隔未通过,则从表中提取源,而不是推送。
我知道这会奏效,但鉴于我的最后一个错误是如此愚蠢,我想确保没有其他更好的做法。
这次我是否正确?
答案 0 :(得分:4)
听起来完全正确。三个注意事项:
将日期/时间放在一列中,然后将要在另一列中显示的Twitter Feed,然后您只需在该行上进行一次选择即可完成。
将呈现的HTML存储在数据库中,而不是从Twitter返回的JSON。然后,您每隔十分钟才进行一次转换,而不是每次页面请求。
在数据库中进行时间比较或者在服务器上进行全部时间比较,不要混淆两者 - 我遇到了服务器时间同步问题,这让我感到非常头疼。也就是说,不要使用“INSERT ... CURTIME()...”调用,然后将其与PHP生成的日期进行比较。我的建议是生成一个PHP日期和存储,因为SQL中的时间比较可能很棘手。
答案 1 :(得分:1)
缓存不太可能发生变化的I / O数据总是很聪明。最佳方式取决于您获得的流量以及您当前需要的数据。