123
返回列表 发新帖
楼主: lastwinner

[参考文档] Ajax RSS 阅读器

[复制链接]
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
21#
 楼主| 发表于 2006-7-11 23:33 | 只看该作者
同样,在命令行中运行此脚本后,会看到如 清单 14 所示的输出。
清单 14. read_js.php 的输出
[php]
addFeed( 1,
[ { title:'War',
  link:'http://www.muttmansion.com/ds/archives/002816.html',
  description:'The...' }, ... ] );

.......
[/php]
为简洁起见,我截短了这段代码,但您可以抓住要点。以提要的 ID 和使用 JavaScript 格式编码的文章数据调用 addFeed 函数。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
22#
 楼主| 发表于 2006-7-11 23:34 | 只看该作者
有了这些新的用 JavaScript 实现的服务,现在就可以创建一个新页面来使用这些服务了。清单 15 展示了这一新页面。
清单 15. script.html
[php]
<html> <head> <title>Script Component Test</title>
<style>
...
</style>
<script>
var g_homeDirectory = 'http://localhost/rss/';

function loadScript( url ) {
  var elScript = document.createElement( 'script' );
  elScript.src = url;
  document.body.appendChild( elScript );
}

function addFeed( id, articles ) {
  var ela = document.getElementById( 'elArticles' );
  ela.innerHTML = '';

  var elTable = document.createElement( 'table' );
  var elTBody = document.createElement( 'tbody' );
  elTable.appendChild( elTBody );

  for( var a in articles ) {
    var title = articles[a].title;
    var link = articles[a].link;
    var description = articles[a].description;

        // Create elements as before...
  }

  ela.appendChild( elTable );
}

function setFeeds( feeds ) {
  var elfl = document.getElementById( 'elFeedList' );
  elfl.innerHTML = '';

  var firstId = null;
  for( var f in feeds ) {
    var elOption = document.createElement( 'option' );
    elOption.value = feeds[f].id;
    elOption.innerHTML = feeds[f].name;
    elfl.appendChild( elOption );

    if ( firstId == null ) firstId = feeds[f].id;
  }
  loadFeed( firstId );
}

function loadFeed( id ) { loadScript( g_homeDirectory+'read_js.php?id='+id ); }

function getFeedList() { loadScript( g_homeDirectory+'list_js.php' ); }
</script> </head> <body>
<div class="rssControl"> <div class="rssControlTitle">
<select id="elFeedList"
  onchange="loadFeed( this.options[this.selectedIndex].value )">
</select> </div> <div id="elArticles"> </div> </div>
<script> getFeedList(); </script>
</body> </html>

........
[/php]

此页面与最初的 idnex.html 页面非常类似。但未使用 loadXMLDoc 函数,而是使用了名为 loadScript 的新函数,用于动态创建 <script> 标记。<script> 标记随后从指定的 URL 加载 JavaScript 代码。

这些脚本标记调用 read_js.php 和 list_js.php 页面。而这些页面又创建在主页中回调 setFeeds 和 addFeed 函数的 JavaScript 代码。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
23#
 楼主| 发表于 2006-7-11 23:34 | 只看该作者
转到此页面时,浏览器显示效果如 图 6 所示。
图 6. 为数据使用<script>标记的 RSS 阅读器

此代码最大的优点就是任何人都可以使用 View Source 命令来查看页面中的脚本,并且能将这些代码复制到自己的页面中。随后其页面将使用返回 JavaScript 代码的 PHP 服务来更新页面。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
24#
 楼主| 发表于 2006-7-11 23:35 | 只看该作者
结束语

在这篇文章中,我演示了如何使用两种不同的技术动态地访问 Web 页面中的数据,从而在页面上创建一个 RSS 阅读器。如果一切顺利,您能够使用本文给出的理念和代码丰富您自己的应用程序,而不必彻底重组您的代码。这正是 Ajax 真正的价值所在 —— 如果您熟悉 Web 技术,即可轻松通过服务器端的一些新服务和客户端的一点点代码使交互性得以升级。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
25#
 楼主| 发表于 2006-7-11 23:36 | 只看该作者
下载
描述 Source code
名字 x-ajaxrss-code.zip
大小 8KB
下载方法HTTP


关于下载方法的信息

Get Adobe&reg; Reader&reg;

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
26#
 楼主| 发表于 2006-7-11 23:36 | 只看该作者
参考资料

学习

获得产品和技术
  • 访问 PHP 主页,这是了解 PHP 的好地方。
  • 使用 IBM 试用软件 构建您的下一个开发项目,可直接从 developerWorks 下载获得。

讨论
  • 查看 ajaxian,这是一个追踪 Ajax 应用程序开发的绝妙博客。
  • 通过参与 developerWorks blogs 加入 developerWorks 社区。





关于作者


Jack Herrington 是一名高级软件工程师,有着二十余年的经验,他撰写了三本图书:Code Generation in ActionPodcasting Hacks h PHP Hacks他的作品还包括三十多篇文章。您可以通过 jherr@pobox.com 与他联系。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
27#
 楼主| 发表于 2006-7-11 23:42 | 只看该作者

使用道具 举报

回复
论坛徽章:
4
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB元老
日期:2009-05-27 11:36:49
28#
发表于 2006-7-12 14:38 | 只看该作者
搂住把blog搬到这里了吧

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
29#
 楼主| 发表于 2006-7-12 19:21 | 只看该作者
最初由 okone96 发布
[B]搂住把blog搬到这里了吧 [/B]


俺Blog上不放这些东西
不过你倒提醒我了
改天搬到Blog中去

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表