Ajax简介
首先,我们使用某样东西,就一定要先了解它,那么,Ajax是什么呢,又能帮我们做什么呢?
要知道,Ajax其实并不是一种新技术,而是由XHTML,CSS,JavaScript,XmlHttpRequest,XML,JSON,DOM等多种技术混合而成的。
传统的页面在与服务器通信后都会刷新页面,而Ajax可以做到不刷新页面,也就是我们说的‘异步加载,局部更新’,在不刷新页面的同事做到局部更新页面。
异步加载
异步加载指的是某段程序执行时不会阻塞其它程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序 ,其优势在于不阻塞程序的执行,从而提升整体执行效率。
举个例子吧,朋友喊我吃饭,我让他先去,我先忙自己的事,这就是异步,同步就是朋友喊我吃饭,然后就等我一起,这就是同步
XMLHttpRequest可以以异步方式的处理程序。
Ajax请求
Ajax有两种请求方式,分别为get请求和post请求
1.get请求
get请求的安全性比较低,在地址上能够看到传递的参数和值,而且能够提交的数据非常少,但是优势在它的灵活性较高,只要有页面的跳转就可以get传递数据。
get请求步骤如下:
// 创建异步对象
var xml = new XMLHttpRequest()
// 设置请求行
xml.open('get', '01.get.php')
// 设置请求头,get方式可不设置,post必须设置
xml.setRequestHeader('name', 'yin')
// 设置请求体,get方式写成null
xml.send(null)
// onreadystatechange是js事件,用来监听异步对象
xml.onreadystatechange = function() {
if (xml.status == 200 && xml.readyState == 4) {
console.log(xml.responseText);
text.value = xml.responseText
}
}
2.post请求
//1.获取用户数据
var msg = text.value
// 创建异步对象
var xml = new XMLHttpRequest()
// 设置请求行
xml.open('post', '01.post.php')
// 设置请求头,get方式可不设置,post必须设置
xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
// 设置请求体,get方式写成null
xml.send('name=' + msg)
// onreadystatechange是js事件,用来监听异步对象
xml.onreadystatechange = function() {
//一个真正的响应应该两个方面: 1.服务器成功响应 2.数据已经回到客户端并且可以使用了
if (xml.status == 200 && xml.readyState == 4) {
console.log(xml.responseText);
}
}
相对get请求来说,post的安全性要高一点,它进行请求时地址栏上看不到数据,而且可以提交大量数据,但实际上get和post请求服务器数据可以说都是不安全的,传送和接收 都是明文以字符串形式交互数据的,因此,实际书写的时候必须要进行加密处理