网站内容的模式定期更新?

时间:2010-07-20 00:27:01

标签: design-patterns language-agnostic web-applications

我经常发现自己正在设计简单的小型Web项目,这些项目正在提供聚合内容或进行“混搭”。通常,这涉及运行脚本以定期刮取/解析/操作某些数据,然后将其作为“静态”内容提供。

我将'refresh'脚本作为cron作业运行,生成为最终用户提供的HTML。内容不会经常改变,所以我通常可以每小时运行一次cron作业。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如果你对它现在如何工作感到满意,我不会改变任何事情。它是一种kludge,但功能齐全。但我猜你不是很开心(否则你就不会问)所以接下来会有更实质的答案。

基本升级是编写一个脚本,轮询您的mashup源并动态生成HTML。 mashup源可以是从远程Web服务器到本地文件到本地数据库的任何东西 - 您可以在代码中“连接到”任何东西。基本步骤是:

  1. 以编程方式从每个来源检索信息。
  2. 解析并根据需要进行转换,丢弃您不想要的位,并重新格式化某些部分,如日期格式等。
  3. 将已转换信息的所有各个部分注入HTML结构并将其输出到客户端。
  4. 1& 2声音基本上就像你已经在做的那样。它只是#3缺失的链接。您基本上希望动态生成输出,而不是预生成并发送静态HTML。

    非常适合这类事情的语言包括PHP,Perl,Ruby,Python等;接受你的选择。

    进一步优化 - 按照您可能想要的顺序 - 包括:

    1. 缓存源数据。不是每次加载页面轮询源,而是第一次轮询它们,将响应保存到文件或数据库,并检查每个后续页面加载时响应的时间戳,看它是否仍然“新鲜”。如果是这样,您可以改为发送本地缓存副本,通常会带来巨大的性能提升。
    2. 异步加载源数据,以便加载所需的时间成为最慢源的时间,而不是所有源的总和。
    3. 立即发送HTML页面并通过单独的AJAX调用加载每个源代码,例如在每个代码中显示每个源代码。