DOM--6 向应用程序中加入ajax
组合技术
适当的ajax时对已有技术和下列思想的组合
- 语义化(X)HTML标记
- 文档对象模型(DOM)
- JavaScript
- XML
不同浏览器中,公共XMLHttpRequest方法
- open(method, url[, asynchronous [, userName[, password ]]]); 用于指定请求url,方法以及与请求相关的其他可选属性;
- setRequestHeader(label, value); 用于给丁的label和value为请求应用的一个头部信息。该方法必须在请求的open()方法之后,且在send()方法之前调用;
- send(content); 用于发送请求;
- abort(); 用于停止当前的请求;
- getAllResponseHeaders(); 返回字符串形式的完整头部信息集合;
- getResponseHeader(label); 返回指定头部的一个单独的字符串值;
步骤
生成一次新的请求
function stateChangeListener() {
}
var request = false;
if(window.XMLHttpRequest) {
var request = new window.XMLHttpRequest();
} else if(window.ActiveXObject){
var request = new window.ActiveXObject('Microsoft.XMLHTTP');
}
if(request) {
request.onreadystatechange = stateChangeListener;
//get
request.open('GET', '/your/scritp/?var=value&var2=value', true);
request.send(null);
//post
request.open('POST', '/your/scritp/', true);
request.send('var=value&val2=value');
}
处理响应
在‘request.onreadystatechange’方法中,对'request'属性的处理
- readyState
- 0: 尚未初始化
- 1: 载入中
- 2: 载入完成
- 3: 交互
- 4: 完成
- responseText: 一个在响应中返回的数据的字符串表示;
- responseXML: 一个兼容DOM核心的文档对象(在响应是一个有效的XML文档并且设置了适当的头部信息的情况下);
- response: 返回的结果;
- status: 一个表示请求状态的数字代码,这些数字代码是由服务器生成的HTTP协议状态代码;
- statusText: 与状态代码相关的一条信息;
function stateChangeListener() {
switch(request.readyState) {
case 1:
//载入中
break;
case 2:
//载入完成
break;
case 3:
//交互
break;
case 4:
//完成
if(request.status == 200) {
//对request.responseText/responseXMl处理
} else {
//request.status/statusText,错误状态码和信息
}
break;
}
}
在服务器上识别Ajax请求
在服务器看来Ajax请求和其他请求都是一样的;为了表示来自XMLHttpRequest对象的请求,可以使用请求对象的setRequestHeader()方法来发送自定义头部信息,注意设置位置
request.open('GET', '/your/scritp/?var=value&var2=value', true);
request.setRequestHeader('Sent-By','Jinks');
request.send(null);
** 请求的侦听器还可以进一步处理检查响应中是否爆好有效的头部信息,(一般是请求设置特定的头部信息后,后台返回信息的时候再设置相同的头部信息返回)**
function processSpecialRequest(request) {
if(this.readyState == 4) {
var header = request.getResponseHeader('My-Ajax-Response');
if(header == 'SpecialValue') {
//服务器响应中包含了你发送的预期值
} else {
//服务器响应了其他的值
}
}
}
返回信息的数据类型
DOM--6 向应用程序中加入ajax的更多相关文章
- 程序中使用ajax时,type为put,或者delete时在 IIS上没效果,发生HTTP Error 405.0 - Method Not Allowed
其实使用put delete 是在创建webapi中基本才会使用. WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协 ...
- 微信小程序中的AJAX——POST,GET区别
注意:发送服务器时的DATA 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String .转换规则如下: 对于 GET 方法的数据,会将数 ...
- 用JQuery中的Ajax方法获取web service等后台程序中的方法
用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...
- jQuery入门(4)jQuery中的Ajax应用
jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...
- 了解 JavaScript 应用程序中的内存泄漏
简介 当处理 JavaScript 这样的脚本语言时,很容易忘记每个对象.类.字符串.数字和方法都需要分配和保留内存.语言和运行时的垃圾回收器隐藏了内存分配和释放的具体细节. 许多功能无需考虑内存管理 ...
- 在jsp中运用ajax实现同一界面不跳转处理事件
目前,编写应用程序时有两种基本的选择: 桌面应用程序 Web应用程序 它们有什么区别呢?桌面应用程序一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作系统有关)和非凡 ...
- 深入理解ajax系列第九篇——jQuery中的ajax
前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...
- Applet程序组件与AJAX技术
Applet 定义 Applet是一种运行于Web客户端环境下的Java程序组件. 工作原理 Applet以代码的形式嵌入Web页面中,用标签<applet></applet> ...
- JQUERY中各个ajax函数
1.$(selecter).load() --- load() 方法从服务器加载数据,并把返回的数据放入被选元素中 2.$.get(url,callback()) 3.$.post(url,d ...
随机推荐
- 后台session过期,tomcat重启,自动跳转页面js写法
if (window != top) { //top.location.href = location.href;//因为系统分为普通用户和后台,所以暂时写死 if(top.location.href ...
- 【leetcode】Excel Sheet Column Title & Excel Sheet Column Number (easy)
Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...
- iOS -类目,延展,协议
1.类目 类目就是为已存在的类添加新的方法.但是不能添加实例变量.比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现. @interface NSMutableArray ( ...
- Javascript 封装方法
基本封装方法 请看下面的例子: var Person = function(name,age){ this.name = name; this.age = age || "未填写" ...
- EF增删改查基础
#region 1.0 新增 -void Add() /// <summary> /// 1.0 新增 /// </summary> static void Add() { / ...
- Paragon NTFS for Mac® Yosemite - 免费下载
文章链接:http://www.paragon-software.com/cn/home/ntfs-mac-yosemite/registration.html
- 红外解码编码学习----verilog
在设计中运用红外遥控器可以很好的解决按键缺少的问题,还可以方便的控制产品. 红外发射部分: 红外发射管: 判断红外发射管的好坏 : 电路原理图: 接收部分: 传输的NEC协议: 本实验电路: veri ...
- C#学习笔记----.net操作进程
进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他 ...
- scrollTop和scrollLeft的兼容解决万全方法
1.各浏览器下 scrollTop的差异 IE6/7/8: 对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 : 对于有do ...
- Fallout4 Creation Kit
按住SHIFT是旋转视角,按住鼠标中键 E是移动物品 双击W是旋转物品 数字键2 是调整物品大小