陈童的博客's Archivers

From everyinch on 2013-12-19 09:41:27

Ajax — 返回数据的用途

每次进行的简单Ajax请求并没有什么不同,重要的是从服务器返回的数据能帮助我们完成任务。
1. 基于XML的RSS Feed
从服务器返回的数据格式中最普遍的是XML格式,所有现代的浏览器都对XML文档有直接的支持,能即时将它们转换为DOM形式,只要像遍历其它DOM一样的遍历它就可以了。通常无法使用getElementById函数遍历服务器返回的XML文档,这是因为浏览器对非HTML的XML文档没有创建唯一的id属性。下面展示一个例子,从基于XML的远程RSS Feed来加载文章的标题
[code lang="js"]


Dynamic RSS Feed Widget



// 等待文档加载完毕
window.onload = function(){
// 使用Ajax载入RSS feed
ajax({
// RSS feed的URL
url: "rss.xml",

// xml文档类型
type: "xml",

// 请求成功后执行
onSuccess: function( rss ) {
// 把所有RSS feed的标题都插入到id为'feed'的

    var feed = document.getElementById("feed");

    // RSS XML文档中所有的标题
    var titles = rss.getElementsByTagName("title");

    // 遍历标题
    for ( var i = 0; i < titles.length; i++ ) {
    // 创建一个
  1. 元素来存放标题
    var li = document.createElement("li");

    // 将它的内容设置为项目标题
    li.innerHTML = titles[i].firstChild.nodeValue;

    // 添加到
      元素中
      feed.appendChild( li );
      }
      }
      });
      };



      Dynamic RSS Feed Widget

      Check out my RSS feed:






        [/code]
        从上面的例子可以看出,一旦把Ajax请求/响应过程的复杂性解决了,剩下的处理其实并不复杂。XML是一种从服务器端快速传输数据到客户端的方法。
        2. 注入HTML
        可以用Ajax实现的另一个有用的技巧是,动态地将HTML片段注入到文档里。这个技巧和遍历XML的方法区别在于,不必解析和遍历从服务器返回的数据,就可以把它们插入到文档中。
        从远程文件加载一段HTML代码,并将它注入到当前的网页中:
        [code lang="js"]


        HTML Sports Scores Loaded via AJAX



        // 等待文档加载完毕
        window.onload = function(){
        // 使用Ajax载入RSS feed
        ajax({
        // HTML文档的url
        url: "scores.html",

        // HTML文档类型
        type: "html",

        // 请求成功后执行
        onSuccess: function( html ) {
        // 将数据插入到id为'scores'的div中
        var scores = document.getElementById("scores");

        // 将新的HTML文档注入文档
        scores.innerHTML = html;
        }
        });
        };



        HTML Sports Scores Loaded via AJAX




        [/code]
        3. JSON与JavaScript
        JSON数据可以作为XML文档的一种轻量级的替代品。此外,从服务器提供纯JavaScript代码则是一个构建动态多用户Web应用程序的好方法。
        动态载入并执行一个远程JavaScript文件:
        [code lang="js"]





        // 加载远程的JavaScript文件
        ajax({
        // JavaScript文件的url
        url: "myscript.js",

        // script文档类型
        type: "script"
        });




        [/code]

        查看完整版本: Ajax — 返回数据的用途

        Tags:


    ©陈童的博客