首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Atom/RSS feed 的应用 -6 综合范例:统计 digg.com 热门文章的 dig 数量

Atom/RSS feed 的应用 -6 综合范例:统计 digg.com 热门文章的 dig 数量

综合范例:统计 digg.com 热门文章的 dig 数量我们已经通过上面的内容了解了 sMash 为 feed 的各种应用场景提供了易用且全面的支持。最后这里用 sMash 的 Ajax feed API 编写一个非常有趣的实例,来展示如何用 JavaScript 统计 digg.com 上热门文章被 dig 的最大、最小以及平均次数。
首先创建 sMash 应用程序,参考“个性化 feed 内容” 部分修改配置文件增加对 zero.feed 模块的依赖。然后创建文件 public/digStatistics.html:
清单 13. HTML 文件中的 JavaScript 代码片段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function doGrouping() {
  dojo.byId("loadingImg").style.display = "block";
  // grouping entries with statistics of digg counts
  var queryParams = {
    "select": [
      "digg:category/text() as atom:title",
      "count($collection) as atom:summary",
      "sum($collection/digg:diggCount) as digg:totalCount",
      "max($collection/digg:diggCount) as digg:maxDiggCount",
      "min($collection/digg:diggCount) as digg:minDiggCount",
      "avg($collection/digg:diggCount) as digg:avgDiggCount"
    ],
    "groupBy": "digg:category"
  };
  zero.feed.FeedFactory.fetch("http://digg.com/rss/index.xml")
    .declareNamespaces({"digg":"http://digg.com/docs/diggrss/"})
    .query(queryParams)
    .filterByXPath("atom:summary > 1")
.loadAsXML(function(feed){
// …
});
}




最后启动这个 sMash 应用程序,使用浏览器访问 http://localhost:8080/digStatistics.html,单击按钮“digg.com statistics”,你就会看到如图 12 的有趣的统计结果了!
如果你需要完整的演示程序代码,可以在 sMash 的演示程序 zero.flow.demo 中找到它。
图 12. 使用 Ajax feed API 创建的 digg.com 统计结束语通过介绍使用 WebSphere sMash 开发 REST 风格的 Web 应用程序,尤其是 sMash 针对 RSS/Atom feed 这些流行的信息聚合格式提供的各种功能和工具支持,相信读者已经对 feed 的应用和开发有了一定了解。文中例子的完整代码都可以在下面的“下载”栏目中找到,你只需要安装有 WebSphere sMash 的命令行工具即可运行他们,使用 AppBuilder 或者 Eclipse 插件可以让开发变得更轻松。
返回列表