每次进行的简单Ajax请求并没有什么不同,重要的是从服务器返回的数据能帮助我们完成任务。
1. 基于XML的RSS Feed
从服务器返回的数据格式中最普遍的是XML格式,所有现代的浏览器都对XML文档有直接的支持,能即时将它们转换为DOM形式,只要像遍历其它DOM一样的遍历它就可以了。通常无法使用getElementById函数遍历服务器返回的XML文档,这是因为浏览器对非HTML的XML文档没有创建唯一的id属性。下面展示一个例子,从基于XML的远程RSS Feed来加载文章的标题
<html> <head> <title>Dynamic RSS Feed Widget</title> <!—基于通用的Ajax函数 --> <script src="ajax.js"></script> <script> // 等待文档加载完毕 window.onload = function(){ // 使用Ajax载入RSS feed ajax({ // RSS feed的URL url: "rss.xml", // xml文档类型 type: "xml", // 请求成功后执行 onSuccess: function( rss ) { // 把所有RSS feed的标题都插入到id为'feed'的<ol>中 var feed = document.getElementById("feed"); // RSS XML文档中所有的标题 var titles = rss.getElementsByTagName("title"); // 遍历标题 for ( var i = 0; i < titles.length; i++ ) { // 创建一个<li>元素来存放标题 var li = document.createElement("li"); // 将它的内容设置为项目标题 li.innerHTML = titles[i].firstChild.nodeValue; // 添加到<ol>元素中 feed.appendChild( li ); } } }); }; </script> </head> <body> <h1>Dynamic RSS Feed Widget</h1> <p>Check out my RSS feed:</p> <!—在这里插入RSS feed --> <ol id="feed"></ol> </body> </html>
从上面的例子可以看出,一旦把Ajax请求/响应过程的复杂性解决了,剩下的处理其实并不复杂。XML是一种从服务器端快速传输数据到客户端的方法。
2. 注入HTML
可以用Ajax实现的另一个有用的技巧是,动态地将HTML片段注入到文档里。这个技巧和遍历XML的方法区别在于,不必解析和遍历从服务器返回的数据,就可以把它们插入到文档中。
从远程文件加载一段HTML代码,并将它注入到当前的网页中:
<html> <head> <title>HTML Sports Scores Loaded via AJAX</title> <!—Load in our generic AJAX function --> <script src="ajax.js"></script> <script> // 等待文档加载完毕 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; } }); }; </script> </head> <body> <h1> HTML Sports Scores Loaded via AJAX </h1> <!—注入HTML文档的位置 --> <div id="scores"></div> </body> </html>
3. JSON与JavaScript
JSON数据可以作为XML文档的一种轻量级的替代品。此外,从服务器提供纯JavaScript代码则是一个构建动态多用户Web应用程序的好方法。
动态载入并执行一个远程JavaScript文件:
<html> <head> <!—载入通用的Ajax函数 --> <script src="ajax.js"></script> <script> // 加载远程的JavaScript文件 ajax({ // JavaScript文件的url url: "myscript.js", // script文档类型 type: "script" }); </script> </head> <body></body> </html>
转载请注明:陈童的博客 » Ajax — 返回数据的用途