AJAX编程模板
AJAX一直以来没怎么接触,主要是做JSON数据在服务器和客户端之间传递的时候,被玩坏了,对它莫名的不可爱,最近心理阴影小了,于是又来看看它.......
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
以上是百度到的。。。
下面自己找着教程归纳了一些。
Asynchronous 异步通信。实现局部刷新。比如说表单注册,如果传统的页面中,如果整体传送,浪费资源。而现在的方式则是部分发送,而且可以后台发送。这就是异步的特点。而不是单一的流水线过程。提高用户体验,节约网页流量。数据一般用JSON。
一般涉及到javascript,JSON,DOM操作。
下面通过一个搜索框提示功能演示实例来体现AJAX的原理。
典型的AJAX编程模板:1.创建XMLHttpReqeust对象 2.open操作初始化请求信息 3.监听处理相应结果 4.send操作发出请求。
1.创建XMLHttpReqeust对象 :var xhr=new XMLHttpRequest();要注意浏览器的状态码:4,200,404等记得是什么意思。
大部分浏览器都有这个函数,但是ie6浏览器低版本没有内置XMLHttpRequest(),但是ie6有一个ActiveXObject。这时候比较兼容性的创建XMLHttpRequest对象的方法如下:
//1.创建XMLHttpReqeust对象
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xhr=new ActiveXObject('Msxml2.XMLHTTP');
}catch (e){
try{
xhr=new ActiveXObject('Microsoft.XMLHTTP');
}catch (e){}
}
}
2.AJAX请求的发起
重点有两个方法要掌握:open和send。open是初始化,而send是真正发起请求的方法。
xhr.open('GET','http://test/keyword/hit?keyword=c',true);
第一个参数是确认当前请求的提交方式,第二个参数是确定当前请求的目标,即url,第三个参数是确定请求时同步(false)还是异步(true),第四和第五一般不用,是帐户名和密码。
open执行之后,就可以执行send方法了。如果open方法用的是GET方法,请求内容放到了url中,这时候send方法就不用传递参数,直接send();如果是post方法,则send方法加如参数,如xhr.send('keyword=c&other=');这是编码的方式urlencoded。当然还可以用JSON数据处理的方式,send一个字符串的形式。即:
xhr.setRequestHeader("Content-Type","application/json");//给当前的请求设置json标志。
xhr.send(JSON.stringify({keyword:'c',other:'test'}));JSON对象序列化格式化成JSON格式数据。不支持JSON的浏览器,有一库json2.js实现兼容。
setRequestHeader除了Content-Type方法外,还可以加自定义的头。
3.AJAX响应的接收和处理
onreadystatechange接收时要先通知服务器可以接了。onreadystate的值,包括5种状态:
0:未初始化;1:连接建立,请求发出;2:服务器返回响应;3:交互(处理相应数据);4:完成,数据可交付客户端使用。同时还要知道HTTP status的状态码:200,403,404,500..
xhr.onreadystatechange=function(e){
if(xhr.readyState===4&&xhr.status==200){}}
数据准备就绪后,怎么处理?
responseText:JSON.parse(xhr.responseText);字符串变为对象。
还可以从响应结果中获取:getResponseHeader,getAllResponseHeader,status,statusTe。
在浏览器F12中的Network中数据包中查看具体的数据。
总结:
XMLHttpReqeust API
AJAX编程模板
jQuery中的ajax。
$.ajax({
url:'',
datatype:'',
success:function(data){
},
error:function(){
}
});
AJAX编程模板的更多相关文章
- http服务&ajax编程
http服务&ajax编程 1.服务器 前言:通俗的讲,能够提供某种服务的机器(计算机)称为服务器 1.1.服务器类型 按照不同的划分标准,服务可划分为以下类型: 按服务类型可分为:文件服务器 ...
- 01HTTP服务&AJAX编程
HTTP服务&AJAX编程 一.服务器 1. 什么是服务器? 能够提供某种服务的机器(计算机)称为服务器. 2.服务器的分类: 1.按系统分类:Lin ...
- AJAX编程-封装ajax工具函数
即 Asynchronous [e'sɪŋkrənəs] Javascript And XML,AJAX 不是一门的新的语言,而是对现有技术的综合利用.本质是在HTTP协议的基础上以异步的方式与服务器 ...
- Ajax编程中,经常要能动态的改变界面元素的样式
在Ajax编程中,经常要能动态的改变界面元素的样式,可以通过对象的style属性来改变,比如要改变背景色为红色,可以这样写:element.style.backgroundColor=”#ff0000 ...
- 【WCF--初入江湖】12 WCF与Ajax编程
12 WCF与Ajax编程 Ajax Ajax基本原理 AJAX技术的本质原理就是:使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信. 通过这个对象,JavaS ...
- ajax编程**
ajax 编程 *step1获得 XmlHttpRequest 对象.该对象由浏览器提供,但是该类型并没有标准化.ie 和其它浏览器不同,其它浏览器都支持该类型,而 ie 不支持. function ...
- C++编程模板2
C++编程模板2 #include <iostream> using namespace std; /* */ int main(){ int ans; printf("%d\n ...
- Ajax编程(HTTP请求与响应及API)详解
AJAX编程 即 Asynchronous [e'sɪŋkrənəs] Javascript And XML, AJAX 不是一门的新的语言,而是对现有技术的综合利用. 本质是在HTTP协议的基础上以 ...
- AutoCAD二次开发(2020版)--4,使用ARX向导创建编程模板(框架)--
手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导. 在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序. 本节的程序的需求是,接收CAD用 ...
随机推荐
- Openstack部署工具
Openstack发展很猛,很多朋友都很认同,2013年,会很好的解决OpenStack部署的问题,让安装,配置变得更加简单易用. 很多公司都投入人力去做这个,新浪也计划做一个Openstack的is ...
- js生成随机数的方法实例总结
js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任意随机数就好理解了.比如实际中 ...
- RichTextBox 右键显示 ContextMenuTrip 分类: C# 2014-10-16 10:43 337人阅读 评论(0) 收藏
说明: (1)命名: RichTextBox -> rtxt1 ContextMenuTrip -> cms1 (2)截图: (3)完整代码: <span style=" ...
- 常用iptables规则整理
1.仅允许内部合法的IP地址访问服务器 #setting access rules #one,in access rules,allow all the ips of hudong.com iptab ...
- JAVA LinkedList和ArrayList的使用及性能分析
第1部分 List概括List的框架图List 是一个接口,它继承于Collection的接口.它代表着有序的队列.AbstractList 是一个抽象类,它继承于AbstractCollection ...
- 三大框架常遇的错误:hibernate : object references an unsaved transient instance
hibernate : object references an unsaved transient instance 该错误是操作顺序的问题,比如: save或update顺序问题---比方学生表和 ...
- c++拷贝构造函数(深拷贝,浅拷贝)详解
一.什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: ; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量. 下面 ...
- linux安装总结(亲测)
一:磁盘分区情况 NTFS,FAT32 这是两种常用的磁盘格式 windows7自带的磁盘工具也可以分出上面的格式,用软件也可以.但是FAT32最大的复制文件进去的限度时4G. EXT3只能用软件才能 ...
- Android(java)学习笔记200:Android中View动画之 XML实现 和 代码实现
1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...
- 最近的两个小项目,2:Python webapp的docker镜像
时间过得真快,一眨眼一个多月没更新了,但这一个月我可没偷懒啊,真的是忙.粘上两篇ReadMe勉强凑合一下,保持博客更新是好习惯. 基于Flask框架,uwsgi起服务,supervisor做管理,应该 ...