Ajax使用的五步法
Ajax使用的五步法
<script type=
"text/javascript"
>
//用于保存XMLHttpRequest对象的变量,由于整个过程中必须使用同一个XMLHttpRequest对象,所以要定义成全局的
var
xmlhttp;
function
submit()
{
//第一步:创建XMLHttpRequest对象
if
(window.XMLHttpRequest){
//对于IE7,IE8,firefox,Mozilla,Safari浏览器都能满足这个条件
xmlhttp=
new
XMLHttpRequest();
//这段代码是为了解决某些版本的mozilla浏览器在XMLHttpRequest对象接收服务器返回的xml数据会出问题的一个bug而添
//加的,目前来说属于一个小众事件,所以只需要知道这是个修复小众bug的代码段
if
(xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType(
"text/xml"
);
}
}
else
if
(window.ActiveXObject){
//上面的浏览器也能满足这个条件,但是上面的自带了XMLHttpRequest对象,所以没有必要再利用这个来创建。
//IE6和IE5的判断条件
//由于不同浏览器所支持的Activex版本不同,为了对不同版本的浏览器都能定义出XMLHttpRequest对象,创建的时候遍历
所有版本的Activex控件版本,总有一个当前浏览器支持
var
activexName=[
'MSXML2.XMLHTTP.6.0'
,
'MSXML2.XMLHTTP.5.0'
,
'MSXML2.XMLHTTP.4.0'
,
'MSXML2.XMLHTTP.3.0'
,
'MSXML2.XMLHTTP'
,
'Microsoft.XMLHTTP'
];
for
(
var
i=0;i<activexName.length;i++){
try
{
xmlhttp=
new
ActiveXObject();
break
;
}
catch
(e){
}
}
}
//alert(xmlhttp);
if
(xmlhttp==undefined||xmlhttp==
null
){
alert(
"您的浏览器太老,请更换版本。"
);
return
;
}
//第二部:注册回调方法,当服务器处理结束返回数据以后利用回调方法实现局部的页面刷新数据
//这个回调方法实际上在每次XMLHttpRequest对象的readyState属性的值发生变化的时候都会被调用,但是我们实际上只关心
//readyState==4(与服务器交互结束)这一种情况。
xmlhttp.onreadystatechange=callback;
//获得文本框输入内容
var
userName=document.getElementById(
"UserName"
).value;
/*这个是使用GET方式的设置方式
----------------------------------------------------------------------------------------------------------------------
//第三步:设置和服务器交互的相应参数
//制定servlet页面是AJAX,由于使用的是GET方法,所以参数要自己拼出来,ture表示是“异步”
xmlhttp.open("GET","AJAX?name="+userName,true);
//第四步:设置向服务器发送的数据,启动和服务器端交互
xmlhttp.send(null);
//由于我们使用的是“GET”,所有数据斗拼在url中,这里的参数是null,如果使用“Post”就必须有参数了
----------------------------------------------------------------------------------------------------------------------
*/
//使用post方式
//第三步:设置和服务器交互的相应参数
xmlhttp.open(
"POST"
,
"AJAX"
,
true
);
//使用POST方式需要多加的代码,[url=http://www.woyinwose2.com.cn]我淫我色[/url]手动添加一个Http请求的头信息。这段代码的工作本来是由浏览器帮助完成的
xmlhttp.setRequestHeader(
"Content-Type"
,
"application/x-www-form-urlencoded"
);
//第四步:设置向服务器发送的数据,启动和服务器端交互
xmlhttp.send(
"name="
+ userName);
}
function
callback(){
//alert('------------');
//第五步:判断和服务器交互是否完成,还要判断服务器端是否正确返回数据
if
(xmlhttp.readyState==4){
//表示和服务器的交互已经完成
if
(xmlhttp.status==200){
//服务器端响应代码是200,正确返回了数据
//纯文本数据的接受方法
var
message = xmlhttp.responseText;
//xml对应的DOM对象接受方法,
//[url=http://www.yuputuan.org]玉蒲团[/url]接受这个需要服务器端设置content-type为text/xml
//var docXml = xmlhttp.responseXML;
//把从服务器端返回的数据动态填充到div标签中
//记忆向div中填充文本的方法
var
div = document.getElementById(
"message"
);
div.innerHTML = message;
}
}
}
</script>
Ajax使用的五步法的更多相关文章
- AJAX核心--XMLHttpRequest五步法
引言: AJAX=异步Javascript + XML,AJAX是一种用于创建高速动态网页的技术. 开门见山: 解读:AJAX使用XHTML和CSS为网页表示.DOM动态显示和交互,XML进行数据交换 ...
- ETL构建数据仓库五步法
原文:http://huangy82.blog.163.com/blog/static/49069827200923034638409/ ETL构建企业级数据仓库五步法 在数据仓库构建中,ETL贯穿于 ...
- 鲲鹏性能优化十板斧——鲲鹏处理器NUMA简介与性能调优五步法
TaiShan特战队六月底成立,至今百日有余,恰逢1024程序员节,遂整理此文,献礼致敬!希望能为广大在鲲鹏处理器上开发软件.性能调优的程序员们,提供一点帮助.从今天开始,将陆续推出性能调优专题文章. ...
- 鲲鹏性能优化十板斧之前言 | 鲲鹏处理器NUMA简介与性能调优五步法
鲲鹏处理器NUMA简介 随着现代社会信息化.智能化的飞速发展,越来越多的设备接入互联网.物联网.车联网,从而催生了庞大的计算需求.但是功耗墙问题以功耗和冷却两大限制极大的影响了单核算力的发展.为了满足 ...
- ajax readyState的五种状态详解
通过ajax的readyState的值,我们可以知道当前的这个http请求处于什么状态.对于web的调试是比较重要的. readyState 状态说明: (0)未初始化 此阶段确认XMLHttpReq ...
- 原生ajax请求的五个步骤
//第一步,创建XMLHttpRequest对象 var xmlHttp = new XMLHttpRequest(); function CommentAll() { //第二步,注册回调函数 xm ...
- AJAX应用的五个步骤
1.建立xmlHttpRequest对象 if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); if(xmlHttp.ov ...
- 框架基础:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码
距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这个行业,让大脑休息一下.一个人旅行,一个人休息,正好也去完成一个目标 --- 拥有自己的驾照.当然,也把自己晒的黑漆马虎的.不过这一段时间 ...
- jquery基础学习之AJAX篇(五)
理解不深,只知道这么用 jquery 中ajax的请求方法 $.ajax({ url:‘http://...’, //请求网址 type:'GET', //请求方法 success:function( ...
随机推荐
- FPGA——按键(二)
直接上源码: module key_led( input sys_clk , //50Mhz系统时钟 input sys_rst_n, //系统复位,低有效 :] key, //按键输入信号 :] l ...
- 12Linux_Apache_vsftpd(匿名开发模式)
网站:让我们的用户可以通过浏览器去访问到的文档的资源. windows:IIS Linux:Apache Nginx(吃得少,干的多) APACHE:基金会,公司,软件 httpd:软件名称,软件包名 ...
- Swoft 缓存及Redis使用
配置 修改 /config/properties/cache.php 文件 return [ 'redis' => [ 'name' => 'redis', 'uri' => [ ' ...
- EF_简单的增删改查
EF分为三种code_first,model_first,dabase_first这三种模式,网上的例子有好多,但是用了之后感觉实际中都不是这么用的,此处记录写下来日后用的着了可以快速应用,记录如下: ...
- 深入理解Java虚拟机之JVM垃圾回收随笔
1.对象已经死亡? 1.1引用计数法:给对象中添加一个引用计数器,每当有一个地方引用他时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器都为0的对象就是不可能再被使用 的.但是它很难解决 ...
- Interlij idea
https://blog.csdn.net/qq_30180559/article/details/79146795 http://baijiahao.baidu.com/s?id=157736618 ...
- numpy-matrix 方法速查
->matrix.T transpose:返回矩阵的转置矩阵 matrix.H hermitian (conjugate) transpose:返回复数矩阵的共轭元素矩阵 matrix.I in ...
- IOS 微信返回按钮事件控制弹层关闭还是返回上一页
在微信公共号内绑定域名后或微信内打开第三方链接跳转非单页面网站时,经常会有弹层Modal的需求,此时如果用户习惯性点击微信自带的返回“<”按钮,就会跳转回上一页或退出网站,而为了避免这种不好的误 ...
- java 将mysql中Blob类型转为字符串或数字
引入Blob类型貌似不行,不知道是版本问题还是java中的Blob类型为oracle,后来使用byte[]转换成功. public float byte2float(byte[] b) { if(b! ...
- could not open input file 错误
配置laravel时遇到的小错误 ps:php -S localhost:81 -t 框架目录/public S大写 端口不要被占用