Ajax

  Ajax是浏览器中使用JavaScript进行服务器后台请求,读取附加信息或者导致服务器响应的过程。

  Ajax广泛用于从服务器读取数据,并用所得到的数据更新页面,以及向服务器发送数据

  Ajax请求执行:

  1. 创建一个Ajax对象
  2. 发出请求
  3. 处理服务器响应

一 基础

  创建一个Ajax对象:

function getXMLHttpRequestObject(){
var ajax = null;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}else if(window.ActiveXObject){//old IE
ajax = new ActiveXObject('MSXML2.XMLHTTP.3.0');
}
return ajax;
}

  指定对象的结果处理器(即Ajax事务期间调用的函数),将函数和Ajax调用关联: ajax.onreadystatechange = handleStateChange;

  发出请求,调用对象的open()方法,以请求类型作为第一参数,服务器资源URL为第二参数,TRUE为第三参数。

  常见的请求类型GET和POST:

  • GET请求是请求HTML的标准方法即单击链接时浏览器发出的请求类型,用于获取数据
  • POST表单提交的标准方法,用于发起服务器更改或者响应,用于常见而可重复的请求

  Ajax请求必须经过服务器发起才能正常工作。

  调用send()实际的发出请求:ajax.send(null)

  abort()撤销请求。

  readyStrate属性有一下五个值,执行顺序如下:

  • 0,未发送
  • 1,打开
  • 2,接收到首标
  • 3,加载中
  • 4,完成

  检查readyState属性并反应,在此之前进行一次检查--确认响应正常,使用status属性(代表服务器对资源请求的相应代码)完成确认:

 if(ajax.readyState == 4){
if((ajax.status >= 200 && ajax.status <300) ||(ajax.status==304)){
//handle the response
}else{
//status error
}
}else{
//show the loading message or do nothing
}

  HTTP代码:

成功2××          成功处理了请求的状态码。
200                   服务器已成功处理了请求并提供了请求的网页。
204                   服务器成功处理了请求,但没有返回任何内容。                         
重定向3××       每次请求中使用重定向不要超过 5 次。
301                   请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
302                   请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。
304                   如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。
客户端错误4××  表示请求可能出错,妨碍了服务器的处理。
400                    服务器不理解请求的语法。
403                    服务器拒绝请求。
404                    服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
410                    请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时用来替代404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。
服务器错误5××   表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
500                     服务器遇到错误,无法完成请求。
503                     服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。

二  JSON

  JavaScript对象标记法(JavaScript‘S Object )。建议使用双引号标记所有属性和值。

  在Ajax中,使用JSON:将其解析为JavaScript代码:

  1. 从Ajax对象获得对象的responseText属性中获取数据  var data = ajax.responseText;
  2. 转化为JavaScript对象 var data = JSON.parse(data);

JavaScript学习心得(十)的更多相关文章

  1. WGZX:javaScript 学习心得--2

    转贴javascript心得(二) 标签: javascriptajaxweb开发htmlfirefox框架 2008-09-11 10:56 636人阅读 评论(0) 收藏 举报  分类: UI(2 ...

  2. JavaScript学习总结(十四)——JavaScript编写类的扩展方法

    在​J​a​v​a​S​c​r​i​p​t​中​可以使​用​类的p​r​o​t​o​t​y​p​e属性来​扩​展​类的属​性​和​方​法,在实际开发当中,当JavaScript内置的那些类所提供的动态 ...

  3. WGZX:javaScript 学习心得--1

    标签: javascriptiframedreamweaver浏览器htmltable 2008-09-11 10:50 1071人阅读 评论(0) 收藏 举报  分类: UI(21)  1,docu ...

  4. JavaScript学习总结(十六)——Javascript闭包(Closure)

    原文地址: http://www.cnblogs.com/xdp-gacl/p/3703876.html 闭包(closure)是Javascript语言的一个难点,也是它的特色, 很多高级应用都要依 ...

  5. JavaScript学习心得

    javaScript十分的强大,所以自然而然学起来也是不易的,想要掌握它的核心,把它理解透更是不易的,但只要你能够静下心来,耐心的去钻研,学习,还是可以把它给学好的,加油吧! 下面是一些JavaScr ...

  6. JavaScript学习笔记(十二) 回调模式(Callback Pattern)

    函数就是对象,所以他们可以作为一个参数传递给其它函数: 当你将introduceBugs()作为一个参数传递给writeCode(),然后在某个时间点,writeCode()有可能执行(调用)intr ...

  7. JavaScript学习心得(八)

    Cookie是Netscape发明的技术,是动态网站必不可少的部分,用于浏览器请求Web页面的超文本传输协议是一种无状态的协议. 两种方法维护状态:使用会话(session)(使用服务器技术实现,数据 ...

  8. JavaScript学习心得(七)

    一 创建事件监听器 开发人员往往使用事件和元素组合来命名事件处理函数. 创建事件监听器方法: 嵌入式事件处理器即将JavaScript函数赋值给HTML元素属性(不推荐使用:污染HTML:无法应用渐进 ...

  9. JavaScript学习心得(六)

    函数 对函数参数没有任何类型检查(弱类型),在必要时在函数内加上类型检查(typeof): JavaScript的函数参数无法设置默认值(可以通过检查参数,当为undefined时设置一个值 func ...

随机推荐

  1. Oracle中分页查询语句

    Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.O ...

  2. java数据结构之hash表

    转自:http://www.cnblogs.com/dolphin0520/archive/2012/09/28/2700000.html Hash表也称散列表,也有直接译作哈希表,Hash表是一种特 ...

  3. Day 2 @ RSA Conference Asia Pacific & Japan 2016

    上午有两场summits,议题分别是: sum-w01: G2B: Cyber-Business in Myanmar, Indonesia and Thailand sum-w02: Achievi ...

  4. hdu 2821 Pusher(dfs)

    Problem Description PusherBoy is an online game http://www.hacker.org/push . There is an R * C grid, ...

  5. JAVA Metrics度量工具 - Metrics Core 翻译

    Metrics核心 翻译自Metrics官方文档: http://metrics.codahale.com/manual/core/ JAVA Metrics是一个用于度量的一个JAVA的类库,使用请 ...

  6. 节点类(CCNode)

    节点与渲染树 回顾前面的介绍,我们已经知道了精灵.层和场景如何构成一个游戏的框架.精灵属于层,层属于场景,玩家与精灵互动,并导致游戏画面在不同场景中切换.把每个环节拼接在一起,我们得到了一个完整的关系 ...

  7. NDK开发之JNIEnv参数详解

    即使我们Java层的函数没有参数,原生方法还是自带了两个参数,其中第一个参数就是JNIEnv. 如下: native方法: public native String stringFromC(); pu ...

  8. '[linux下tomcat 配置

    tomcat目录结构 bin ——Tomcat执行脚本目录 conf ——Tomcat配置文件 lib ——Tomcat运行需要的库文件(JARS) logs ——Tomcat执行时的LOG文件 te ...

  9. wsdl自动生成Java代码,根据wsdl生成Java代码

    wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ...

  10. api图片传输,转成64位字符串进行传输

    byte[] getImageByte = HttpHelper.getImageByte(HttpContext.Current.Server.MapPath(("~/UploadFile ...