在B/S架构中,浏览器端发送请求的传统方式如下:
1.直接在浏览器地址栏上输入url
2.超链接
3.from表单
4.在JavaScript代码中发送请求
1)window.open(url)
2)document.location.href = url
3)window.location.href = url
……
以上传统请求存在的问题:
每次请求都会导致浏览器页面全部重新刷新,从而浏览器页面有空白期(用户的体验是不连贯的),导致用户体验不好。
AJAX概述
英文全称:Asynchronous Javascript And Xml(异步JavaScript和XML)
AJAX不能称为一种技术,它是多种技术的综合产物。
AJAX可以让浏览器发送一种特殊的请求,这种请求可以是:异步的。
异步与同步:
假设有t1和t2线程,t1和t2线程能够并发(互不干涉),就是异步。
假设有t1和t2线程,t2想执行,必须等待t1线程执行到某个位置之后t2才能执行,t2需要等待t1,显然他们是排队的,排队的就是同步。
AJAX是可以发送异步请求的。也就是说,在同一个浏览器页面当中,可以发送多个ajax请求,这些ajax请求之间不需要等待,是并发的。
AJAX代码属于WEB前端的JS代码。和后端的java没有关系,后端也可以是php语言,也可以是C语言。
AJAX 应用程序可能使用 XML 来传输数据,但将数据作为纯文本或 JSON 文本传输也同样常见。
AJAX可以更新网页的某个部分,而不需要重新加载整个页面。(页面局部刷新)
AJAX可以做到在同一个网页中同时启动多个请求,类似于在同一个程序中启动“多线程”。
XMLHttpRequest对象
XMLHttpRequest对象是AJAX的核心对象,发送请求以及接收服务器数据的返回,都是通过它来完成。
XMLHttpRequest对象,现代浏览器都是支持的,都内置了该对象。直接用即可。
创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
XMLHttpRequest对象的方法:
XMLHttpRequest对象的属性: