Asynchronous JavaScript and XML

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。是在不重新加载整个页面的情况下,与服务器交换数据并异步更新部分网页的技术。

http://www.runoob.com/ajax/ajax-examples.html

不错的视频教程



在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。

工作原理:

XMLHttpRequest对象 在后台,异步地与服务器交换数据。

原生Ajax创建

最早是IE5中以组件的形式实现的。由于非W3C标准,实现方式不统一:

IE5、6它被实现为一个ActiveX对象;

其他浏览器把它实现为一个JavaScript对象。

但属性和方法访问是兼容的。

function getHttpObject(){
var xhr = false;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest(); }else if(window.ActiveXObject){
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
return xhr; }

常用方法、属性

open("method","url")

建立对服务器的调用。url既可以是相对的也可以是绝对的。

send(content)

向服务器发送请求。

setRequestHeader("header","value")

把指定头部设置为所提供的值,比如post请求需要设置setRequestHeader("ContentType","application/x-www-form-urlencoded")告诉服务器正在发送数据,而且该数据已经符合URL编码了。它

之前需要调用open()方法。

readState:请求的状态,0未初始化,1正在加载,2请求已接收,3请求处理中,4响应完成。

onreadystatechange:每个状态改变都会触发这个事件处理器。服务器触发的。

status:服务器的HTTP状态码。

responseXML:服务器响应返回XML类型的数据,文本会存储在该对象中,这个对象可以解析为DOM对象。

responseText:服务器响应HTML、Json类型的数据,文本会存储在该对象中。

服务器返回数据类型的选择

jQuery中的Ajax

编写常规的 AJAX 代码并不容易,因为不同的浏览器对 AJAX 的实现并不相同。这意味着您必须编写额外的代码对浏览器进行测试。不过,jQuery 团队为我们解决了这个难题,我们只需要一行简单的代码,就可以实现 AJAX 功能。jQuery对Ajax操作进行了封装。

load()方法

格式:load(url[,data][,callback])

url是请求的地址,后面可以加选择器,对返回的html格式数据筛选;data是发送给服务器的k-v数据;callback请求完成(无论成功失败)后的回调函数。

$("#content").load(this.href,args);

将返回结果直接插入到id=content标签的值中。

get()方法

格式:get(url[,data][,callback][,type])

url是请求的地址;data是发送给服务器的k-v数据;callback请求完成(无论成功失败)后会被触发的的回调函数,响应结果将返回到回调函数的参数里。

type是返回数据的格式,如html、xml、json等。

			$.get(url,{"time":new Date()},function(data){
var name = $(data).find("name").text();
var website = $(data).find("website").text();
var email = $(data).find("email").text(); $("#details").empty()
.append("<h2><a href='mailto:"+email+"'>" +name + "</a></h2>")
.append(" <a href='" + website+ "'>"+website+"</a>");
});

xml数据解析。

post()同。

getJSON()方法

get(url[,data][,callback],"JSON")一样。

前端知识之Ajax的更多相关文章

  1. Web前端知识技能大汇总

    项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目.我们可以 ...

  2. Web前端知识体系精简

    Web前端技术由html.css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知 ...

  3. 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

    前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...

  4. 整理六百篇web前端知识混总

    9个有用的和免费的工具来支持动态网页开发 8个基本的引导工具的网页设计师 11款CSS3动画工具的开发 2016年某前端群题目答案参考 9最好的JavaScript压缩工具 创建响应式布局的10款优秀 ...

  5. (转)web前端知识精简

    Web前端技术由 html.css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学 ...

  6. Web前端知识体系

    看到一篇不错的文章,拿来收藏和分享. 原文:http://mp.weixin.qq.com/s/UFTfdE7LYhHquWEzwZKLCQ Web前端技术由html.css和 javascript三 ...

  7. 资深阿里程序员一一为你解刨Web前端知识体系结构,付出与收获成正比!

    只要接触过前端,都会指导web前端的知识主要由三部分组成:分别为静态html,样式css,动态javascript(简称js)这三大部分组成.其三部分组成的一个体系的复杂程度不亚于其他一门技术的复杂程 ...

  8. 移动端 Web 开发前端知识整理

    文章来源: http://www.restran.net/2015/05/14/mobile-web-front-end-collections/ 最近整理的移动端 Web 开发前端知识,不定期更新. ...

  9. web前端知识体系总结

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

随机推荐

  1. 基于 DataLakeAnalytics 做跨地域的数据分析

    在阿里云上,很多客户的应用都是多地域部署的, 比如在北京(cn-beijing)的地域部署一个应用让北方的客户访问快一点,同时在杭州(cn-hangzhou)地域部署一份让南方的客户访问快一点.多地域 ...

  2. 【设计模式+原型理解】第一章:使用Javascript来巧妙实现经典的设计模式

    刚开始学习设计模式之前,我是没想说要学习设计模式的,我只是因为想学习JS中的原型prototype知识,一开始我想JS中为什么要存在原型这个东西?于是慢慢通过原型而接触到设计模式,后来发现我这个过程是 ...

  3. Spring笔记

    Spring概念 Spring是一个开源的轻量级的框架 Spring核心主要两部分 (1) Aop面向切面编程,扩展功能不是修改源代码实现 (2) Ioc控制反转, 比如说有一个类,在类里面有方法(不 ...

  4. 3.SDL落地方案

    01.安全培训 安全意识培训(全员) 邮件安全 钓鱼邮件 邮件伪造 第三方转存 检查发件人 开启二次验证 邮件转发 第三方代收 邮件附件敏感信息加密 病毒防范 什么是木马病毒 我安装哪些杀毒软件? 定 ...

  5. 3Delight NSI: A Streamable Render API

    3Delight是应用于高端电影级别渲染的软件渲染器,迄今为止已经参与了无数的电影制作,具体可以参见链接. 如果你对3Delight的印象就依然是RenderMan的替代品,那就显然已经和时代发展脱节 ...

  6. 好代码是管出来的——.Net中的代码规范工具及使用

    上一篇文章介绍了编码标准中一些常用的工具,本篇就具体来介绍如何使用它们来完成代码管理. 本文主要内容有: Roslyn简介 开发基于Roslyn的代码分析器 常用的基于Roslyn的代码分析器 在.N ...

  7. 关于executemany()方法在不同OS和DB API下的不同表现的测试

    昨天在参照着网上写一段关于MySQL连接池的配合gevent多线程调用的代码时遇到了一个问题,自己写的代码根本不能多线程执行,比单会话插入数据慢太多,直到今天早上才发现问题所在,把DB API从MyS ...

  8. 记录一次Orthanc dicom数据异常手动修复

    问题复现场景 同一个StudyInstanceUID,对应两个不同的PatientID. 通俗讲,原本是一个病人的一次影像,却割裂成两个病人的影像,虽然两个病人不影响系统数据,但是同一个Study分别 ...

  9. DNS域名解析过程,域名的认识

    DNS域名解析过程 参考知乎:https://www.zhihu.com/question/23042131 当你通过浏览器输入url访问资源时,会请求DNS解析域名成对应的IP地址,由IP地址在去与 ...

  10. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...