首先,什么是Ajax
Ajax的英文全称是“异步JavaScript和XML”,是一种创建交互式网页的开发技术。
二、Ajax技术的核心
Ajax是一系列相关技术的融合,其核心包括XMLHttpRequest、JavsScript和DOM技术,不同的数据格式可能会用到Json或XML技术。
XMLHttpRequest是其核心内容,可以为页面中的javascript脚本提供特定的通信方式,从而使页面中的javascript脚本与服务器动态交互。XMLHTTPRequest最大的优点是页面中的JavaScript脚本可以直接与服务器交互,无需刷新页面,从而实现无页面刷新的效果。
Iii .XMLHttpRequest方法属性的描述
1.方法描述
Abort()停止当前请求
GetAllResponseHeaders()以键/值对的形式返回HTTP请求的所有响应头
GetResponseHeader(“头”)返回指定头的字符串值
Open ('method ',' URL ',[asyncflag],['username'],['password'])建立对服务器的调用。方法参数可以是GET、POST或PUT。
url参数可以是相对URL或绝对URL。该方法还包括三个可选参数,即异步、用户名和密码
发送(内容)向服务器发送请求
Setrequestheader ('header ',' value ')将指定的标头设置为提供的值。在设置任何标题之前,必须调用Open()。
设置标题并与请求一起发送(post方法必须)
XMLHttpRequest对象属性描述
2.方法描述
Onreadystatechange事件触发器,每次状态改变时都会触发这个事件处理程序,通常会调用一个JavaScript函数
readyState请求的状态。有五种可能的值:0=未初始化,1=加载,2=加载,3=交互,4=完成
来自响应文本服务器的响应返回数据的文本。
responseXML服务器的响应返回数据的DOM兼容的XML文档对象,可以解析为DOM对象。
响应服务器返回的主题(非文本格式)
响应流服务器返回的数据流
状态服务器的HTTP状态代码(例如,404='在末尾找到文件',200='成功'等。)
statustext服务器返回的StatusText信息,HTTP状态码对应的文本(OK或Not Found等)。)
四、Ajax的工作原理
AJAX的工作原理相当于在用户和服务器之间增加了一个中间层,使用户操作与服务器异步。并非所有用户请求
所有这些都被提交给服务器,例如一些数据验证和数据处理,只有在确定需要从服务器读取新数据时,才会交给AJAX引擎本身
AJAX引擎将请求提交给服务器。如图所示:
动词(verb的缩写)Ajax的优势
1.减轻服务器负担,提高网站性能。
2.页面没有刷新和更新,减少了用户等待网站加载的时间。
3.用户体验更友好,可以避免白屏。
4.Ajax是基于标准化和广泛使用的技术。几乎所有主流浏览器都支持这项技术,ye不需要单独安装插件。
5.Ajax可以将Web中的页面和应用分开,便于分工协作。
第六,Ajax的缺点
1.它不能很好地支持移动设备。
2.Ajax杀死了后退按钮,破坏了浏览器的后退机制。
3.安全问题。例如跨站点脚步攻击、SQL注入攻击、基于凭证的安全漏洞等。
4.对搜索引擎的支持很弱。
5.破坏程序的异常机制。至少目前来看,像ajax.dll和ajaxpro.dll这样的ajax框架会破坏程序的异常机制。
使调试变得困难。
七、使用原则
1.Ajax应用程序场景
形式驱动的交互
深层树导航
用户之间的快速通信响应
类似于投票、是/否等不相关的场景
过滤数据和处理相关数据的场景
常见的文本输入提示和自动完成场景
2.Ajax不适用于场景
部分简单形式
搜索
基本导航
替换大量文本
演示文稿的处理
八、原生AJAX编写
var XHR=null;如果(窗口。XMLHttpRequest) {//非IE内核XHR=new XMLHttpRequest();} else if(窗口。activexobject) {//IE内核,其中早期版本的IE编写方式不同,可以查询xhr=new ActiveX object(' Microsoft . xmlhttp ');} else { XHR=null;}if(XHR){XHR.open('GET ',' AJaxserver . action ');xhr . onreadystatechange=function(){//readystate值说明//0,初始化,Xhr对象已创建,open//1尚未执行,load,open方法已调用,但请求尚未发送//2,加载已完成,请求已发送//3,交互,可接收部分数据//状态值说明//200:成功//404:未找到文件、查询或URL//500:服务器生成内部错误if (xhr。readystate==4xhr。status==200){//返回的内容可以在这里处理//一般会返回JSON或者XML数据。//主动发布,XHR=null表示JS本身会回收;}};xhr . send();}以上是边肖介绍的Ajax用法的总结,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!