1.什么是Ajax?

Ajax(Asynchronous JavaScript and XML),简单说就是不需要刷新当前页面而实现javaScript和和后台服务器交换数据以更新网页中的部分内容。

2. 实现

  第一步: 创建   XMLHttpRequest 对象,老版的IE浏览器用 ActiveXObject 对象

var request;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
request = new XMLHttpRequest();
}else{// code for IE6, IE5
request = new ActiveXObject("Microsoft.XMLHTTP");
}

  第二步:准备相关数据 , 调用 request.open();方法,

request.open(method,url);// method是请求方式:GET/POST,url是请求目标

  第三步:调用request.send();方法

request.send(data);// data是通过此请求要发送的数据

  第四步:为request对象的属性onreadystatechange添加响应函数,此函数由系统触发,然后根据响应状态做出相应的处理

request.onreadystatechange = function(){
// 判断响应是否完成
if(request.readyState == 4){
// 判断响应结果是否正常
if(request.status == 200 || request.status == 304){
/**
request.responseText 或 request.responseXML 返回的数据,在这里做相应的处理
*/
}
}
}

  至此一次Ajax通信完成!

    说明:响应的返回的数据格式有三种:

    html 格式,不需解析,可以直接镶嵌到页面中——不太方便;

    XML 格式, 通用数据格式,占用的空间较大,解析相对困难;

    JSON 格式,占用空间较小,有面向对象的特点,且有第三方  jar 包可以将java对象或集合包装成JSON字符串。

3. 用JQuery实现Ajax操作

  对于  html  或  text  格式的数据,可直接使用 $( selector).load();方法;

$(selector).load(url,args)  // url 为请求的目标位置,默认的请求方式的GET,但args若作为第二参数时自动转换为POST方式,注意,args必须是JSON格式

  这样返回的  responseText 会直接加载成  selector 对应节点的子元素。

  对于XML格式和JSON格式则有 $.get(url,[args],[callback],[type]) 或 $.post(url,[args],[callback],[type]) 方法,args是要发送的数据,callback为回调函数,接受的数据在回调函数的参数 data 中,type是指以相应的数据格式接受数据;

// 这是用get方法接收XML格式的数据
$("a").click(function(){ // 为 a 标签添加 click 函数
var url = this.href;
$.get(url,function(data){ // data的内容就是下面XML文档的内容
var name = $(data).find("name").text();
var website = $(data).find("website").text();
var email = $(data).find("email").text();
$("#content").empty().append("<h2><a href='mailto:"+email+"'>"+name+"</a></h2>")
.append("<a href='"+website+"'>"+website+"</a>"); // 将数据加在 id 为 content 的节点下面
});
return false; // 取消 a 标签的默认操作
});
<?xml version="1.0" encoding="UTF-8"?>
<details>
<name>Andy Budd</name>
<website>http://andybudd.com</website>
<email>andy@clearleft.com</email>
</details>

  若是JSON数据,则可以用eval() 处理一下data,或者在get方法中加入 "JSON" 作为 type 参数,或直接调用$.getJSON() 方法,则得到的 data 就是一个JSON 对象。

$.get(url,args,function(data){
// data 是JSON对象
},"JSON");
$.post(url,args,function(data){
// data 是JSON对象
},"JSON");
$.getJSON(url,args,function(data){
// data 是JSON对象
});

然后根据页面的需要将数据更新到页面即可!

Ajax的简单介绍与使用的更多相关文章

  1. ajax的简单介绍

    响应主体,就是服务器给我们返回的结果内容(浏览器里的responsive) 请求主体,是我们给服务器的数据 输入域名发起一次请求,得到的可能是标签,标签可能还要在发一次请求 post怎么发请求:for ...

  2. AJAX简单介绍

     什么是AJAX Ajax 是 AsynchronousJavaScript and XML(以及 DHTML 等)的缩写. HTML 用于建立 Web表单并确定应用程序其它部分使用的字段. ·J ...

  3. Android项目开发全程(二)--Afinal用法简单介绍

    本篇博文接上篇的<Android项目开发全程(一)--创建工程>,主要介绍一下在本项目中用到的一个很重要的框架-Afinal,由于本系列博文重点是项目开发全程,所以在这里就先介绍一下本项目 ...

  4. JMS学习篇《一》ActiveMQ消息中间件的简单介绍与用法-概念篇

    原创说明:本篇博文为本人原创作品,转载请注明出处 1.何为消息中间件 消息中间件是一种在分布式应用中互相交换信息的一种技术,常见的成熟消息中间件有:RabbitMQ.SonicMQ,activeMQ. ...

  5. Eclipse rap 富客户端开发总结(1) :rap简单介绍和开发环境搭建

    一.rap简单介绍 1 基本概念     RAP可以让开发人员使用JAVA API和按照Eclipse 插件的开发模式构建基于AJAX的Web 2.0应用程序, RAP的工作原理是采用交叉编译的方式将 ...

  6. jQuery系列 第一章 jQuery框架简单介绍

    第一章 jQuery框架简单介绍 1.1 jQuery简介 jQuery是一款优秀的javaScript库(框架),该框架凭借简洁的语法和跨平台的兼容性,极大的简化了开发人员对HTML文档,DOM,事 ...

  7. 【转】深入浅出JMS(二)--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ ...

  8. Asp.net博客系统收集和简单介绍

    国内Asp.net博客系统收集和简单介绍       [转载文章,仅供个人参考,引自http://www.soyaoo.com/Blog/post/92.html] 1.ZJ-Blog程序简介:基于A ...

  9. React 简单介绍

    React 简单介绍 作者 RK_CODER 关注 2014.12.10 17:37* 字数 2516 阅读 55715评论 6喜欢 70 why React? React是Facebook开发的一款 ...

随机推荐

  1. OCP知识点讲解 之 检查点队列与增量检查点

    原创 http://blog.chinaunix.net/uid-26762723-id-3271558.html 检查点的主要目的是以对数据库的日常操作影响最小的方式刷新脏块.脏块不断的产生,如何将 ...

  2. 【LeetCode】数组移除元素

    链表等复杂数据结构用多了,简单的数组操作也不能遗忘! 1. 给定一个有序数组,移除所有重复元素并返回新的数组长度,不能分配额外数组的内存空间. e.g. 给定输入的数组 = [1,1,2],函数应当返 ...

  3. MapReduce(一)

    MapReduce(一) 一.介绍 百度百科: MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约) ...

  4. spring xml的配置

                    Spring xml文档头得配置 spring文档头一般是可以复制过来得,刚学习得时候一直看网上有没有配置,然后也没有找到,希望以下过程得学习可以给大家带来帮助!! 1 ...

  5. 【九校联考-24凉心模拟】锻造(forging)

    题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打, 于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现……自 己连一个史莱姆都打不过了. 勇者的精灵路由器告诉勇者其实是他 ...

  6. RWCString 定义 memeroy leak

    代码截取片段: testDefs.hh class testDefs { public: static const RWCString testStr; }; testDefs.cc const RW ...

  7. js之单例

    所谓单例,指的是只有一个实例的对象. js通过对象字面量的方式来创建单例对象. var sig = { name:value, method:function(){ } }

  8. python 自然语言处理(二)____获得文本语料和词汇资源

    一, 获取文本语料库 一个文本语料库是一大段文本.它通常包含多个单独的文本,但为了处理方便,我们把他们头尾连接起来当做一个文本对待. 1. 古腾堡语料库 nltk包含古腾堡项目(Project Gut ...

  9. Win10系列:UWP界面布局基础6

    资源合并 前面提到过,可以将资源字典定义在单独的XAML文件中,这样的文件被称为资源字典文件.那么,在需要引用文件中的资源时可以通过ResourceDictionary元素的MergedDiction ...

  10. unity中让摄像机移动到鼠标点击的位置和鼠标控制平移视角

    private Vector3 targetVector3; private float movespeed=0.5f; private bool IsOver = true; private Gam ...