MyPersistence

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一、Ajax简介

  Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不刷新整个网页的情况下,对网页实现部分更新。

二、Ajax数据格式

  使用Ajax方式向服务器发送请求之后,服务器会给客户端发送请求数据。使用Ajax时,可以通过XMLHttpRequest对象的属性responseXML和responseText来获取服务器响应的数据。从responseXML取得是XMldocument对象,而从responseText属性取得的数据需要自己判断格式并解析。

三、从XML文档中获取数据并转换为HTML

  XMLHttpRequest对象的reponseXML属性返回的XML属性会被自动解析成一个可以定位的XML格式的DOM对象,可以通过DOM方法在其中定位节点和获取数据。

例子如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="UI._default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Ajax</title>

<style style="text/css">
    body {
        font-family:Arial,Helvetica,sans-serif;
    }

    .book {
        border-top:1px solid #ccc;
        padding:10px 5px;
        
    }
   .book h2 {
       margin:0;
       font-size:2em;
        }
        .book .author {
            margin:0;
            font-weight:bold;
            font-size:1em;
        }

        .book p {

            margin:0;
        }
   
    





    
</style>

<script>
    window.onload = function ()
    {
        var xmr;
        //创建XMLHttprRequest对象
        if (window.XMLHttpRequest) {
            xmr = new XMLHttpRequest();
        }
        else {
            try{
                xmr=new ActiveXObject("MSXML.XMLHTTP6.0")
            } catch (e) { }

            try {
                xmr = new ActiveXObject("MSXML.XMLHTTP");
            }catch(e){}
        }

        //为按钮添加事件处理
        var btn = document.getElementById("btn");
        btn.onclick = function ()
        {

            //如果成功创建XMLHttpRequest对象实例,则通过对象向服务器发出请求
            if (xmr)
            {
                xmr.open("GET", "Books.xml", true);
                xmr.onreadystatechange = function ()
                {
                   // debugger;
                    if (xmr.readyState == 4)
                    {
                        //解析XML文档构造HTML
                        
                        var doc = xmr.responseXML.documentElement;//注:responseXML 获得XML格式的响应数据
                        var books = doc.getElementsByTagName("book");
                        var container = document.getElementById("content");
                        


                        var book, title, author, description, text;

                        for (var i = 0; i < books.length; i++)
                        {
                            //创建Div作为书籍数据的容器
                            book = document.createElement("div");
                            book.className = "book";

                            //创建h2存放书籍标题
                            title = document.createElement("h2");
                            text = document.createTextNode(books[i].childNodes[1].firstChild.data);

                            title.appendChild(text);
                            book.appendChild(title);

                            //创建p存放作者
                            author = document.createElement("p");
                            author.className = "author";

                            title = document.createTextNode(books[i].childNodes[3].firstChild.data);

                            author.appendChild(title);
                            book.appendChild(author);

                            //创建p存放内容简介
                            description = document.createElement("p");
                            title = document.createTextNode(books[i].childNodes[5].firstChild.data);

                            description.appendChild(title);
                            book.appendChild(description);

                            //将创建的Div节点加入到页面
                            container.appendChild(book);
                        }


                    }

                }
                xmr.send();

            }


        }

    }
</script>     

</head>
<body>
    <div id="content"></div>
    <input id="btn" type="button" value="Ajax获取数据" />              
</body>
</html>

 

 XML文档

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <book>
    <title>呐喊</title>
    <author>鲁迅</author>
    <description>"呐喊"中的小说,以振聋发聩的气势...</description>
  </book>
  <book>
    <title>追风筝的人</title>
    <author>卡勒德.胡赛尼</author>
    <description>12岁的阿富汗富家少爷阿米尔与仆人哈桑情同手足...</description>
  </book>
</root>

 

posted on 2015-08-04 15:38  MyPersistence  阅读(1947)  评论(0编辑  收藏  举报