1.同步与异步的区别:
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕
2.get post区别(http请求方法)
get:用于获取数据,通过网址进行数据传递(name=''&name1=''),容量小,不适合传大数据,安全性差,数据泄漏,有缓存
post:用于上传数据,不通过网址,容量大,安全性好一点,没缓存
2.如何使用Ajax从服务器获取数据?
①创建对象
②连接到服务器,open方法
pen(方法, 文件名, 异步传输)
GET,POST URL true表示异步,flase表示同步,一般情况下是异步,默认为true。
③发送ajax请求
xhr.readyState==4表示请求已经结束,服务器响应完成。
status表示http请求的状态,200表示正常响应;404表示资源找不到;500表示服务器端错误。
④发送ajax请求。
如果没有数据,可以不传或者传递null;如果post请求传递数据:首先设置xhr的请求头信息:
xhr.setRequestHeader("Content-type","application/x-www-formurlencoded");
再传递参数send():
xhr.send(name=liujianhong&password=123);
dome:
封装的函数:Ajax.js
function ajax(url, fnSucc, fnFaild)
{
//1.创建Ajax对象,浏览器兼容性
if(window.XMLHttpRequest)
{
var oAjax=new XMLHttpRequest();
}
else
{
var oAjax=new ActiveXObject("Microsoft.XMLHTTP");
}
//2.连接服务器
//open(方法, 文件名, 异步传输)
oAjax.open('GET', url, true);
//3.发送请求
oAjax.send();
//4.接收返回
oAjax.onreadystatechange=function ()
{
//oAjax.readyState //浏览器和服务器,进行到哪一步了
if(oAjax.readyState==4) //读取完成
{
if(oAjax.status==200) //成功
{
fnSucc(oAjax.responseText);//获取内容
}
else
{
if(fnFaild)
{
fnFaild(oAjax.status);
}
//alert('失败:'+oAjax.status);
}
}
};
}
调用:
ajax('a.txt', function (str){ alert(str); });