PHP假期复习(五)---AJAX
来源:互联网 发布:石头纸 知乎 编辑:程序博客网 时间:2024/04/25 08:45
AJAX
AJAX所包含的技术:
AJAX(Asynchronous JavaScript And XML)涉及到7项技术,其中Javascript、XMLHttpRequest、Dom、XML是最为重要;
XMLHttpRequest对象:
XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据交换,却不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既可减轻服务器负担又加快了响应速度、缩短了用户等待时间。
IE5.0开始,开发人员可以在Web页面内部使用XMLHTTPActiveX组件扩展自身的功能,不用从当前Web页面导航就可以直接传输数据到服务器或者从服务器接收数据。Mozilla1.0以及NetScape7则是创建继承XML代理类XMLHttpRequest;对应大多数情况,XMLHttpRequest对象和XMLHTTP组件很相似,方法和属性类似,只是部分属性不同;
IE和非IE实例化XMLHttpRequestrian对象:
<script language=“javascript”>
var xmlHttp = false;
if (window.ActiveXObject) {
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
</script>
XMLHttpRequest对象的方法:
Abort() 停止当前请求;
getAllResponseHeaders() 作为字符串完整的返回headers;
getResponseheader(“hederLabel”) 作为字符串返回单个的header标签;
Open(“method”,“URL”[,asyncFlag[,”userName”[,”password”]]]) 设置 未决的请求的目标URL方法和其他参数;
open的第一个参数是HTTP请求的方法,GET、Post或者Head
open的第二个参数是目标URL。基于安全考虑,这个URL只能是同网域的,否则会提示“没有权限”的错误。这个URL可以是任何的URL,包括需要服务器解释执行的页面,而不仅仅是静态页面。目标URL处理XMLHttpRequest请求跟处理普通的HTTP请求一样,比如JSP可以用request.getParameter(“”)或者request.getAttribute(“”)来取得URL参数值。
open的第三个参数只是指定在等待服务器返回信息时,是否继续执行下面的代码。如果为true,则不会,直到服务器返回信息,默认为true;
Send(content) 发送请求;
setRequestHeader(“label”,”value”) 设置header并和请求一起发送;
跟form一样,如果要传文件或者Post内容给服务器,必须先调用 setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
这时,资料则以查询字符串的形式列出,作为send的参数,例如:name=value&so=on;
XMLHttpRequest对象属性:
onreadystatechange 状态改变的事件触发器;
readyState 对象状态(integer):0=未初始化,1=读取中,2=已读取,3=交互中,4=完成;
responseText 服务器进程返回数据的文本;
responseXML 服务器进程返回数据的兼容DOM的XML文档对象;
status 服务器返回的状态码,如404=“文件未找到”、200=“成功”
statusText 服务器返回的状态文本信息;
AJAX开发步骤:
1. 创建AJAX对象 ——— XMLHttpRequest;
var xmlhttp = false;
if(window.ActiveXObject){
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}else if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
alert(“您的浏览器不支持AJAX!”);
return false;
}
2. 使用请求时状态改变的事件触发器 ———— onreadystatechange
Xmlhttp.onreadystatechange = function( ){
//数据成功接收并返回时
if(xmlhttp.readystate==4){
if(xmlhttp.state==200 ){
var info = xmlhttp.responseText;
}
}else{
//没有成功返回数据时
var errinfo = stateText;
return false;
}
}
3. 组装请求 ———— open();
xmlhttp.open(“get”,”xxx.html”,true);
4. 发送请求 ————send();
xmlhttp.open(null);
发送过后就可以触发状态改变事件,在把整个过程用作某个事件发生时,最后返回对应的responseText或者stateText;
- PHP假期复习(五)---AJAX
- PHP假期复习(一)----编程入门
- PHP假期复习(二)----函数
- PHP假期复习(三)---http协议
- PHP假期复习(四)---web技术
- PHP假期复习(六)---操作MySQL
- PHP假期复习(七)---面向对象基础
- PHP假期复习(八)---对象的高级特性
- 复习php知识点五
- PHP 进阶(五)AJAX
- php学习——css复习五(浮动)
- java 复习 (五)
- Linux复习(五)
- java复习(五)
- 假期备战蓝桥杯stm32学习笔记(五)
- Php复习(1)
- Php复习(2)
- Php复习(3)
- hdu 5818 Joint Stacks 栈
- Error22error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning
- POJ2002Squares(哈希)
- Effective Objective-C 2.0 第15条:用前缀避免命名空间冲突
- 数据结构上机实验之顺序查找
- PHP假期复习(五)---AJAX
- ssh2框架程序运行流程
- 数据结构实验之求二叉树后序遍历和层次遍历
- MyBatis架构设计及源代码分析系列(一):MyBatis架构
- POJ3723 招募士兵[最小生成树]
- 关于迭代的一点小理解
- 15.leetcode 3Sum(medium)[排序 查找 Ksum问题]
- 网页头部<meta name="Robots" 用法 及<meta>系列其他用法.
- Android四大组件——Activity生命周期、启动模式、显隐式意图、杀死进程、杀死所有Activity、安装及反编译