ajax入门
2017-08-28 13:05
176 查看
ajax背景
2005一个人发表了该文章Ajax:AnewApproachtoWebApplacations
ajax:AsynchronousJavaScriptandxml
初始是微软在推出IE5时就开始支持ajax的核心技术,但ajax的推行是由chrome完成的
使用ajax无需刷新页面即可部分改变页面内容,是浏览器之前需要刷新页面更新数据的变革
ajax包含的技术
使用css和HTML来表示(请求到的数据用html和css展示出来)
使用DOM模型来交互和动态显示(请求到的数据用dom操作处理之后动态展示)
使用XMLHttpRequest来和服务器进行异步通信
使用javascript来绑定和调用
ajax优点
页面无刷新,在页面内与服务器通信,给用户的体验非常好。
使用异步的形式与服务器通信,不需要打断用户的操作,给用户的体验更好。
减轻服务器负担
不需要任何的插件或者小程序
ajax缺点
不支持浏览器的后退机制。(回退后找不到之前的数据)
安全问题,跨站点脚本攻击、sqi注入攻击(比如12306购票网站的最初构建不好,导致各种抢票脚本、抢票软件的出现,简单的几行js代码即可实现后台抢票)
对搜索引擎的支持比较弱(SEO)
不支持手持设备如pad、手机
违背了url和资源定位的初衷(最初一个url对应的页面和资源一定是这样的,但用ajax后同样的url对应的页面和资源就有可能变化,就是因为ajax的异步请求造成的)
Ajax原理和XMLHttpRequest对象
Ajax的原理简单来说,就是通过XMLHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。
XMLHttpRequest最核心!!!
XMLHttpRequest的属性:
onreadystatechange 每次状态改变所触发事件的事件处理程序。
responseText 从服务器进程返回数据的字符串形式。
responseXML 从服务器进程返回的DOM兼容的文档数据对象。
status 从服务器返回的数字代码,比如常见的404或者200
statusText伴随状态码的字符串信息
readyState对象状态值
0(未初始化)对象已建立,但是尚未初始化(尚未调用open方法)
1(初始化)对象已经初始化(尚未调用send方法)
2(发送数据)(send方法已经调用)
3(数据传输中)
4(完成)
XMLHttpRequest的方法:
open() 三个参数
打开方式 get和post
地址
是否异步true代表要使用异步的形式,false代表的是使用同步
ajax封装