ajax笔记

Ajaxjavascript

Asynchronous JavaScript and XMLphp

 

1:ajax是什么?html

:标准的XHTML+CSShtml5

动态的DOM操做java

XML进行数据的传输和交换web

XMLHttpRequest对象异步交换数据ajax

javascript把上述概念绑定.json

 

2: ajax的几种名称api

Ajax跨域

无刷新技术

局部刷新技术

异步刷新技术

 

无刷新技术:

调用ajax程序的页面,从地址栏上看,没有变化,没有刷新,所以,无刷新技术

 

局部刷新技术:

调用ajax程序的页面,可能经过响应内容,动态的改变部分DOM节点

 

异步刷新技术:

Js会阻塞后面的js代码执行和html代码的渲染.

而用异步传输数据,不会阻塞后面js代码执行和html代码的渲染.

 

同步:就像打电话,电话不挂,人也不干其余的,等到挂电话后才能干其余的.

异步就像发短信,发完短信后,能够干其余的事情,同时等着短信回来.

 

3:XMLHttpRequest详细属性

responseText: 服务器响应的主体信息,body信息

responseXML对于大量的格式化文档,能够用XML来传输或交换,由后台程序把数据封装在XML文档时, js接收XML对象并解析该内容.

status是服务器的返回状态码,:200,成功, 403 forbidden 禁止, 404 not found未找到

50X系列,内部服务器错误

statusText: 服务器返回的状态码,对应的文字描述

readyState: XMLHttpRequest对象自身的状态码,0,4   [0,1,4], [2,3,4]

onreadystatechange : 事件属性,绑定当XMLHttpRequest对象的状态发生变化的时候,激发的函数

 

4:XMLHttpRequest详细方法

open('请求方式',url, 同步/异步); false->同步, true->异步

send(null/参数), 参数的写法:k1=v1&k2=v2&kn=vn.....

setRequestHeader(key,value); 设置请求的头信息

Abort忽略,不要再进行下去了,到此为止

getResponseHeader: 获取响应的某个头信息

getAllResponseHeaders: 获取响应的全部头信息

 

 

 

XMLHttpquest对象在各浏览器中的兼容

spacer.gif 

 

先考虑标准状况,在高版本IE,也能够用XMLHttpRequest对象来建立.
Ajax返回值

字符串

  短字符串:

    应用场景通常返回较短,具备标志的字符串,,0/1, succ/fail, 已注册,未注册等.

  Json格式字符串:

应用场景返回数组或对象等格式化数据

 javascript object notation, javascript原生对象格式

  Html代码: 一整段html代码

     应用场景当页面上有大块的数据变化时用数组要牵涉到大量的DOM操做,

     这时,能够用PHP+Html,预先生成须要的html代码而后以字符串形式返回.

     再innerHTML到页面中去.

  Jsonp: 

XML

应用场景:返回大量的格式化数据时

若是返回XML来使用

须要1: 服务器端的返回明确指定返回类型XML

2:在客户端用 responseXML


Json的意义:

 

Json 出现的场景:

PHP有数组 $arr = array(1,2,3);

C语言中,也有数组, arr = [1,2,3];

js也有数组, arr = [1,2,3]

 

 

PHP有数组, java有数组, C语句也有数组, javascript里也有数组,

各语言数组的定义也不同,

如何把不一样语言之间的数组让其余语言可以认识?

 

如何解决把各语言的数组转成你们都支持的一种格式,各语言就能够通讯了.

 

 

 

Json就是一种轻量级的,通用的数组/对象转换格式.

 

PHP中如何应用json格式

PHP,能够对对象/数组  应用 json_encode把对象/数组编成 json格式的字符串

也能够用json_decodejson格式的字符串转成 对象/数组

 

javascript,若是把json格式的字符串转成数组或对象?

把该字符串表达式执行一下.

json格式的字符串,()包起来,eval执行一下.

Eval(); // eval


 

Ajax的跨域传值

出于安全性考虑, XMLHttpRequest只容许访问相同域下的地址.

 

解决:iframe 

用同域代理来解决

Jsonp: 

参考地址:http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=查询词&callback=回调函数名
不用XMLHttpRequest对象,如何达到ajax的效果,好比投票效果

史前时代的ajax

经过动态的建立DOM对象,DOM引用后台的程序文件,来达到请求服务器的目的,

好比,动态建立img对象,并设置对象.src 属性值为 后台的.php文件.

这样,当建立图片时,后台的PHP文件就会被请求

 

Jsonp原理:

动态的追加其余域下的js文件,

其余文件文件下返回的js文件有其内容

本利的回调函数,执行其内容.

 

Jsonp使用注意:

安全性远程给你一段js代码,安全性是未知的,要当心使用.

 

 

Ajax上传文件能实现吗?

XMLHttpRequest发送表单信息和硬盘上的文件内容. (好比一张图片的二进制信息)

 

表单信息,能够经过js操做DOM, 读取表单项的值,

硬盘的文件的内容也须要读取出来,一块儿发送到服务器.

Js可否读取硬盘文件呢?  不能. (html5里加了少许权限)

由于也没法ajax上传文件?

相关文章
相关标签/搜索