AJAX学习整理二之简单实例

做了几个简单的实例,加载txt文本内容、加载xml文件内容,把xml文本内容转换成html表格显示。废话不多说,直接贴代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head>
    <title>通过ajax获取文本内容</title>
    <meta charset="utf-8">
    <script>
            //加载文件
            var loadTextByAjax = function(type){
                //第一步,创建XMLHttpRequest对象
                var xmlhttp;
                if(window.XMLHttpRequest){// Firefox, Opera 8.0+, Safari, IE7
                    xmlhttp = new XMLHttpRequest();
                }else{// Old IE
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    console.log("old IE");
                }
                //第二步,编写回调函数
                xmlhttp.onreadystatechange = function load(){
                    if(xmlhttp.readyState === 4 && xmlhttp.status === 200){
                        document.getElementById(‘status‘).innerHTML = xmlhttp.status;
                        document.getElementById(‘readyState‘).innerHTML = xmlhttp.readyState;
                        if(type === ‘txt‘){
                            document.getElementById("content").innerHTML=  xmlhttp.responseText;
                        }
                        if(type === ‘xml‘){
                            document.getElementById("content").innerHTML=  xmlhttp.responseText;
                        }
                        if(type === ‘table‘){
                            transform();
                        }
                    }
                }
                //第三步,使用open()方法指定服务器地址
                switch (type){
                    case ‘txt‘ :
                        xmlhttp.open("GET","Resources/test.txt",true);
                        break;
                    case ‘xml‘ :
                        xmlhttp.open("GET","Resources/xml.xml",true);
                        break;
                    case ‘table‘ :
                        xmlhttp.open("GET","Resources/xml.xml",true);
                        break;
                }

                //第四步,发送请求
                xmlhttp.send();

                //xml转换html表格显示
                var transform = function(){
                    var table = "<table border=‘1‘ style=‘color: blue‘>";//1
                    table = table +"<tr><td>书名</td><td>作者</td><td>出版时间</td><td>价格</td></tr>"
                    var content = xmlhttp.responseXML.documentElement.getElementsByTagName(‘book‘);//获取遍历循环的内容
                    var i = 0;
                    for(i = 0; i<content.length; i++){
                        table = table + "<tr>"//2
                        var tr = content[i].getElementsByTagName(‘title‘);
                        {
                            try{
                                table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3
                            }catch(er) {
                                table = table + "<td> </td>";//3
                            }
                        }
                        var tr = content[i].getElementsByTagName(‘author‘);
                        {
                            try{
                                table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3
                            }catch(er) {
                                table = table + "<td> </td>";//3
                            }
                        }
                        var tr = content[i].getElementsByTagName(‘year‘);
                        {
                            try{
                                table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3
                            }catch(er) {
                                table = table + "<td> </td>";//3
                            }
                        }
                        var tr = content[i].getElementsByTagName(‘price‘);
                        {
                            try{
                                table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3
                            }catch(er) {
                                table = table + "<td> </td>";//3
                            }
                        }
                        table = table +"</tr>";
                    }
                    table = table +"</table>";
                    document.getElementById(‘content‘).innerHTML = table;//把获取的转换后的table插入页面元素
                }
            }
    </script>
</head>
<body>
    <div style="border:1px solid black;font: 16px;font-family: 黑体">
        通过ajax方式改变内容哦:</br>
        Status:<span id="status"></span></br>
        ReadyState:<span id="readyState"></span></br>
        responseText:<span id="content">哈哈哈哈</span></br>

        <button onclick="loadTextByAjax(‘txt‘)">点我加载txt文本内容</button>
        <button onclick="loadTextByAjax(‘xml‘)">点我加载xml内容</button>
        <button onclick="loadTextByAjax(‘table‘)">点我xml转换成table</button>
    </div>
</body>
</html>

下面是xml.xml文件内容,可直接复制粘贴内容:

<bookstore>
    <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="web" cover="paperback">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
    <book category="web">
        <title lang="en">XQuery Kick Start</title>
        <author>James McGovern</author>
        <author>Per Bothner</author>
        <author>Kurt Cagle</author>
        <author>James Linn</author>
        <author>Vaidyanathan Nagarajan</author>
        <year>2003</year>
        <price>49.99</price>
    </book>
</bookstore>

文本内容test.txt文本内容:

the is a first content,so easy !

虽然例子比较简单,但是好记性不如烂笔头嘛,整理一下留个笔记,方便以后观看学习。

AJAX学习整理二之简单实例,布布扣,bubuko.com

时间: 2024-08-02 02:39:15

AJAX学习整理二之简单实例的相关文章

javascript 基础学习整理 二 之 html对象总结,参考W3C

Anchor 对象 更改一个链接的文本.URL 以及 target 使用 focus() 和 blur() 向超链接添加快捷键 Document 对象 使用 document.write() 向输出流写文本 使用 document.write() 向输出流写 HTML 返回当前文档的标题 返回当前文档的 URL 返回当前文档的 referrer 返回下载当前文档的服务器域名 使用 getElementById() 使用 getElementsByName() 打开一个新的文档,添加一些文本,然后

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

Cookie学习笔记二:Cookie实例

今天说说刚刚学到的两个Cookie的最经典应用:自动登录和购物车设置 一:自动登录 需要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp处理登录信息:如果有Cookie,则自动登录,否则创建输入信息的对象的Cookie,下次登录可以直接登录,但是我们在这里给Cookie设置一个最大保存时间30s,即登录30s后会自动退回到登陆页面,具体代码如下: login.jsp: <%@ page language="java" con

AJax 学习笔记二(onreadystatechange的作用)

AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了onreadyStateChange事件实现这一功能.这类似于回调函数的做法.onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果,如: 复制代码 代码如下: ajaxObj=createAjaxObject(); var url="/MyTod

Ajax学习(二)—— 一个简单的Ajax实例

通过上篇博客认识Ajax之后,我们通过一个简单的实例来消化消化理论知识,一睹Ajax的庐山真面目. 1.实例功能: 当用户输入用户名,文本框失去焦点后,通过异步调用来判断该用户名是否已经存在.若存在,则在上图中红框处显示提示.当用户名可用时,提交按钮变为可用状态. 2.设计Html页面: <span style="font-family:SimSun;font-size:18px;"><strong><span style="font-famil

设计模式学习(二)——简单工厂模式、工厂模式、抽象工厂模式

最近抽时间将之前看过的"程序人生"公众号推送的一篇工厂模式的介绍进行了实践,为了加深自己理解,特将自己的学习理解记录于此.初识设计模式,就被设计模式的精妙深深吸引,感觉脱离设计模式的代码就失去了美丽.作为一个测试,平日写代码的机会肯定不如开发多,但是希望自己能通过努力逐步提升代码水平,有一天也能写出优美的代码.如果有对于工厂模式或其他设计模式感兴趣的朋友欢迎一起探讨. 一.简单工厂模式 定义:专门定义一个类用来创建其他类的实例,被创建的实例通常具有共同的父类. 场景一:恰巧今天,老大兴

Ajax学习整理

什么是ajax?W3School中给ajax的定义是: 1.AJAX = 异步 JavaScript 和 XML. 2.AJAX 是一种用于创建快速动态网页的技术. 3.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 4.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 通俗的讲,AJAX就是JS通过一个网址去加载数据,这个过程通常是用户不可见的.使用ajax的能够异步加载数据,及时验证

Activiti工作流学习(二)流程实例、执行对象、任务

一.前言 前面说明了基本的流程部署.定义,启动流程实例等基本操作,下面我们继续来学习流程实例.执行对象.任务. 二.流程实例.执行对象说明 整个Activiti的生命周期经过了如下的几个步骤: 1.流程部署 --->  2.启动流程实例 --- > 3.执行流程对象(一个流程实例包含多执行对象) ---> 4.完成整个流程 说明: 三.例子演示   1.完成我的任务     2.查询流程状态(判断流程正在执行,还是结束) 3.查询历史任务  4.流程实例.执行对象.任务  四.对应数据库

ajax学习篇(二)XMLHttpRequest的创建和使用

前言:上篇我们介绍了ajax是什么和ajax的执行流程本篇我们介绍实现ajax的对象XMLHttpRequest对象 1.如何使用XMLHttpRequest做ajax请求? 首先我们要先创建XMLHttpRequest对象,按标准new XMLHttpRequest()即可得到,但是如果考虑到低版本的ie那么我们可以new Window.ActiveXObject(Mircosoft.XMLHttp); 下面我们写一个版本兼容函数来创建我们的XMLHttpRequest对象. 1 functi