用 Ajax 和 RSS 攒个首页新闻——(上)

  为了排遣这段时间的无聊也顺便做个 RSS 应用的练习,决定给自己维护的一个小网站加个首页新闻,浏览器用 Ajax 或者 Ajah 从服务器取新闻异步的显示出来,同时提供 RSS 源供聚合器订阅。
 
  XMLHTTPRequest 从上次做过一个手机模拟器后就再没碰过,这次在网上搜寻了一番居然发现了一个好东西: http://www.scss.com.au/family/andrew/webdesign/xmlhttprequest/,一个 Cross-Browser 的 XMLHttpRequest 实现,作者在创作共用条款(Creative Commons License)下发布这个库,只要你不移除脚本中作者的姓名和网址就可以自由使用,就用它了!下载 xmlhttprequest.js 以备后用。
 
  数据可以保存在数据库中也可以简单的写入到服务器的一个文件中,为了灵活起见我就在 MySQL 中新建一个表放站内新闻了,就这么几个字段:id、title、content、time。新闻录入和从数据库中取数据提供给 Ajax/Ajah 请求这种垃圾代码我就不贴了:-)
 
  下面是客户端 XMLHTTPRequest 的代码:
< html >
   < head >
     < title > 首页新闻测试 </ title >
     < meta http-equiv = "Content-Type" content = "text/html; charset=gb2312" >
     < script type = "text/javascript" src = "xmlhttprequest.js" > </ script >
   </ head >
   < body >
     < div id = "News" >新闻读取中…… </ div >
     < script type = "text/javascript" >
     var req = new XMLHttpRequest();
     if ( req )
     {
      req.onreadystatechange = function ()
       {
         var News = "新闻读取失败" ;
        try
         {
           if ( req.readyState == 4 && ( req.status == 200 || req.status == 304 ) )
            News = req.responseText;
         }
        catch(e)
         {
          News = e.description;
         }
        document.getElementById( 'News' ).innerHTML = News;
       } ;
      req.open( 'GET' , 'news.php' );
      req.send( null );
     }
     </ script >
   </ body >
</ html >
 
  这里唯一值得说明的就是 XMLHTTPRequest 默认是用 UTF-8 传递数据的,所以你的数据源最好也用 UTF-8 否则(因为我们这里客户端已经指定了要用 GB2312 了)得到的会是乱码,这在 IE 下会引发 JavaScript 错误,在 FireFox 下却没问题,所以我用 try 和 catch 把上面的代码包住了,免得测试的时候出现错误。如果想试试的话可以用下面的代码作为 news.php:
<?php
echo iconv ( " GB2312", " UTF-8", " 这就是新闻" );
//echo "这就是新闻";
?>
如果注释掉第一句而开放第二句的话不仅看到的是乱码,在 IE 下还会出现 -1072896748 错误。有意思的是 IE 好像还会缓存由 XMLHTTPRequest 收到的内容,而 FireFox 则不会,所以在测试中会出现刷新 IE 很多次看到的还是旧数据的问题,可以在程序里加上下面 4 句话解决这个问题:
header ( " Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header ( " Last-Modified: " . gmdate ( " D, d M Y H:i:s" ) . " GMT" );
header ( " Cache-Control: no-cache, must-revalidate" );
header ( " Pragma: no-cache" );
 
  呵呵,好了,今天就写到这里,RSS 的部分明天再写,开饭……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
AJAX是一种用于创建交互式Web应用程序的技术。它允许在不刷新整个页面的情况下向服务器发送和接收数据,从而实现动态更新页面内容的效果。例如,当用户在网页上填写表单并提交时,AJAX可以在不刷新整个页面的情况下将表单数据发送到服务器并获取响应。 RSS是一种用于订阅和获取更新内容的标准格式。通过使用RSS,用户可以轻松地订阅他们感兴趣的网站或博客的更新,而无需定期访问这些网站。当网站发布新的内容时,RSS会自动将更新的摘要或完整内容发送给用户。 API是应用程序接口的缩写,它定义了软件组件之间的通信方式和规范。通过使用API,开发人员可以轻松地将自己的应用程序与其他应用程序或服务集成在一起。API可以提供数据、功能或服务,使开发人员能够更好地利用已有的资源和功能。 在编程和开发的领域中,AJAXRSS和APIv是一些常用的技术和概念,它们能够为用户提供更好的交互体验、实时更新和集成功能。<span class="em">1</span> #### 引用[.reference_title] - *1* [ApacheCN JavaScript 译文集 20211122 更新](https://blog.csdn.net/wizardforcel/article/details/121801756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2ndboy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值