组合技术

适当的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的更多相关文章

  1. 程序中使用ajax时,type为put,或者delete时在 IIS上没效果,发生HTTP Error 405.0 - Method Not Allowed

    其实使用put delete  是在创建webapi中基本才会使用. WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协 ...

  2. 微信小程序中的AJAX——POST,GET区别

    注意:发送服务器时的DATA 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String .转换规则如下: 对于 GET 方法的数据,会将数 ...

  3. 用JQuery中的Ajax方法获取web service等后台程序中的方法

    用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...

  4. jQuery入门(4)jQuery中的Ajax应用

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...

  5. 了解 JavaScript 应用程序中的内存泄漏

    简介 当处理 JavaScript 这样的脚本语言时,很容易忘记每个对象.类.字符串.数字和方法都需要分配和保留内存.语言和运行时的垃圾回收器隐藏了内存分配和释放的具体细节. 许多功能无需考虑内存管理 ...

  6. 在jsp中运用ajax实现同一界面不跳转处理事件

    目前,编写应用程序时有两种基本的选择: 桌面应用程序 Web应用程序 它们有什么区别呢?桌面应用程序一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作系统有关)和非凡 ...

  7. 深入理解ajax系列第九篇——jQuery中的ajax

    前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...

  8. Applet程序组件与AJAX技术

    Applet 定义 Applet是一种运行于Web客户端环境下的Java程序组件. 工作原理 Applet以代码的形式嵌入Web页面中,用标签<applet></applet> ...

  9. JQUERY中各个ajax函数

    1.$(selecter).load()     --- load() 方法从服务器加载数据,并把返回的数据放入被选元素中 2.$.get(url,callback()) 3.$.post(url,d ...

随机推荐

  1. js中 map 遍历数组

    map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组.注意,这个方法不会改变原始数组. 在我们的例子中,回调函数只有一个参数,即数组中元素的值 (val 参数) , ...

  2. Class和ClassLoader的getResourceAsStream区别

    这两个方法还是略有区别的, 以前一直不加以区分,直到今天发现要写这样的代码的时候运行 错误, 才把这个问题澄清了一下. 基本上,两个都可以用于从 classpath 里面进行资源读取,  classp ...

  3. CSS颜色代码 颜色值 颜色名字大全(转载)

    CSS颜色代码 颜色值 颜色名字大全 转载处http://flyjj.com/css-colour-code.html 颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) ...

  4. -bash: pod: command not found

    OS X 系统没升级之前用的 cocoapods 一点儿问题都没有,但是升级成版本10.11.4 OS X EI Capitan之后,在终端除了cd 指令可以用之外,其他任何指令输入都是提示-bash ...

  5. QT_SVG格式图片浏览器_源代码下载_详细注释

    源代码链接: http://pan.baidu.com/s/1pKA5Vcv 密码: ib2x 注:SVG格式图片特点: 1. 文件小 2. 图像中文字独立于图像, 可以编辑,可搜索. 3.没有字体限 ...

  6. Linux 查看 删除进程

    这东西,时间久不用总容易忘....记下来! 1. 在 LINUX 命令平台输入 1-2 个字符后按 Tab 键会自动补全后面的部分(前提是要有这个东西,例如在装了 tomcat 的前提下, 输入 to ...

  7. React Native官方DEMO

    官方给我们提供了UIExplorer项目,这里边包含React Native的基本所有组件的使用介绍和方法. 运行官方DEMO步骤如下 安装react native环境 React Native项目源 ...

  8. 使用detours实现劫持

    第一步:下载detours3.0,安装detours 第二步:构建库文件,nmake编译 第三步:包含库文件和头文件 #include "detours.h" //载入头文件 #p ...

  9. 自己动手编译hadoop-2.5.2源码

    搭建环境:Centos x 6.5  64bit (后来:我才知道原来官网上发布的就是64位的,不过这个对我来说是个学习过程,对以后进行其他平台编译的时候有帮助!) 1.安装JDK 我这里用的是64位 ...

  10. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...