组合技术

适当的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. plsql客户端显示菜单等

    不小心把plsql的左边的都关了,如图 菜单条---工具---浏览器. 即可.

  2. WCF服务与WCF数据服务的区别

    问: Hi, I am newbie to wcf programming and a little bit confused between WCF Service and WCF Data  Se ...

  3. iOS-JavaScript向WKWebView传值

    一.本地代码所需操作 1.创建viewController并遵守协议 @interface ViewController ()<WKNavigationDelegate,WKScriptMess ...

  4. Split()的简单的用法

    1.Split分割一些简答的字符串事例: string str="aaa|bbb|ccc"; string[] list = str.Split('|'); 这是一个字符的切割,但 ...

  5. HTML标记之Form表单

    一.表单的作用 从访问的Web站点的用户那里获得信息.访问者可以使用诸如文本域.列表框.复选框以及单选按钮之类的表单元素输入信息,然后单击某个按钮提交这些信息.是客户端与服务器端的交流途径. 二.说明 ...

  6. URL重写

    http://localhost:37977/UrlWrite.ashx?id=9URL重写成下面的访问方式,有利于SEO搜索引擎http://localhost:37977/UrlWrite-8.a ...

  7. openURL的使用方法:

    openURL的使用方法: view plaincopy toclipboardprint?        [[UIApplication sharedApplication] openURL:[NS ...

  8. UITableView和UICollectionView的方法学习一

    参考资料 UITableView UICollectionView UICollectionViewDataSource UICollectionViewDelegate UICollectionVi ...

  9. 三、jQuery--jQuery基础--jQuery基础课程--第6章 jQuery 事件与应用

    1.页面加载时触发ready()事件 ready()事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行 ...

  10. 二、JavaScript语言--JS实践--倒计时效果

    主要内容:分析不同倒计时效果的计算思路及方法,掌握日期对象Date,获取时间的方法,计算时差的方法,实现不同的倒时计效果. Javascript 日期对象: Date()返回当前的日期和时间 getY ...