Ajax 原理详细介绍
2016-08-21 13:45
411 查看
Ajax 的全称是Asynchronous JavaScript and XML
Ajax的优点:
1.最大的一点是页面无刷新,给用户的体验非常好。
2.使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。
3.ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,减少服务器的负荷。
Ajax的缺点:
1.破坏浏览器后退按钮的正常行为。在动态更新页面后,用户无法回到前一个页面的状态,这是因为浏览器只能记下历史记录中的静态页面。
2.使用JavaScript作Ajax的引擎,JavaScript的兼容性和Debug本身就让人头大。
3.破坏多层的系统架构(前端直接访问数据库)。
Ajax的优点:
1.最大的一点是页面无刷新,给用户的体验非常好。
2.使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。
3.ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,减少服务器的负荷。
Ajax的缺点:
1.破坏浏览器后退按钮的正常行为。在动态更新页面后,用户无法回到前一个页面的状态,这是因为浏览器只能记下历史记录中的静态页面。
2.使用JavaScript作Ajax的引擎,JavaScript的兼容性和Debug本身就让人头大。
3.破坏多层的系统架构(前端直接访问数据库)。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" id="data"> <div id="load"></div> <script> var ajax={ /*1.创建xmlhttprequest请求*/ createXmlHttp:function(){ //非ie浏览器 if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest(); } //ie浏览器 if(window.ActiveXObject){ try { xmlHttp=new ActiveXObject('Microsoft.XMLHTTP'); }catch (e){ try { xmlHttp=new ActiveXObject('msxml2.XMLHTTP'); }catch (e){} } } }, testAjax:function(){ var data=document.getElementById("data").value; this.createXmlHttp(); if(!xmlHttp){ alert("创建xml对象异常"); return false; } var url="json.json"; /*2.打开链接,向服务请求*/ xmlHttp.open("POST",url,true); xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ document.getElementById("load").innerHTML="数据正在加载......"; if(xmlHttp.status==200){ document.write(xmlHttp.responseText); } } } //发送请求 xmlHttp.send(); } } ajax.testAjax(); /* 如上所示,函数首先检查XMLHttpRequest的整体状态并且保证它已经完成(readyStatus=4),即数据已经发送完毕。然后根据服务器的设定询问请求状态,如果一切已经就绪(status=200),那么就执行下面需要的操作。 对于XmlHttpRequest的两个方法,open和send,其中open方法指定了: a、向服务器提交数据的类型,即post还是get。 b、请求的url地址和传递的参数。 c、传输方式,false为同步,true为异步。默认为true。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作。我们需要根据实际需要来指定同步方式,在某些页面中,可能会发出多个请求,甚至是有组织有计划有队形大规模的高强度的request,而后一个是会覆盖前一个的,这个时候当然要指定同步方式。 Send方法用来发送请求。*/ </script> </body> </html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android Manifest 用法
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 回顾 Firefox 历史
- 小白观察:微软释放出其基于 Chromium 的 Edge 浏览器
- 最后一次说说闭包
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 使用Ajax实现异步用户名验证
- 使用ajax实现用户登录验证(升级版)
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究