用 Ajax 和 R 攒个首页新闻_Ajax编程_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

用 Ajax 和 R 攒个首页新闻

作者:黑客防线网安Ajax教程基地 来源:黑客防线网安Ajax教程基地 浏览次数:0

本篇关键词:新闻首页一个News
黑客防线网安网讯:  为了排遣这段时间的无聊也顺便做个 RSS 应用的练习,决定给自己维护的一个小网站加个首页新闻,浏览器用 Ajax 或者 Ajah 从服务器取新闻异步的显示出来,同时提供 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 "这就是新闻";
?>

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15644-1.html
网站维护教程更新时间:2012-04-05 00:04:58  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer