简单ajax

# 注意同步和异步的区分
同步 sync: 首先,JS 是单线程的语言,所谓“单线程”就是一根筋,对于拿到的程序,一行一行的执行,前面的执行完成,后面的傻傻的等着。若前面的代码没执行完就会造成堵塞,后面的没法执行。(从上往下执行)

异步 async: 而AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。异步代码执行的时候就不会阻塞后面的代码执行。(无需整个页面刷新 局部刷新)

记住: 同步执行代码总是优先于异步执行代码,同步代码在异步代码之前执行。
因为碰到异步代码时,会将异步代码另行存到一个异步队列里面,然后将这个异步队列放到同步代码的最后,才执行(最后一步执行)
例如:Ajax和setTimeout和setInterval这些是异步执行的

Ajax 优势:

1.不同版本的浏览器度 XMLHttpRequest 对象支持度不足(比如 IE5 之前);
2.前进、后退的功能被破坏(因为 Ajax 永远在当前页,不会记录前后页面);
3.搜索引擎的支持度不够(因为搜索引擎爬虫还不能理解 JS 引起变化数据的内容);

ajax.readyState:(就绪状态)

1、(未初始化)还没有调用send()方法
2、(载入)已经调用了send()方法,正在发送请求
3、(载入完成)send()方法执行完成,已经接受到响应内容
4、(交互)正在解析响应内容
5、(完成)响应内容解析完成,正在发送请求

GET,POST方式比较

不同的发送和请求数据的方式:
GET:参数有长度限制,http://www.liulongbing.com?id=… , 明文传输
POST:参数无限制,放在请求体里, 更安全

** // get方式**

var ajax = new XMLHttpRequest();
ajax.open("GET","url",true);
ajax.send(null);
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
var json = JSON.parse(ajax.responseText);
fn(json);
}

// post方式

var ajax = new XMLHttpRequest();
ajax.open("POST","url",true);
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajax.send("name=zhangsan&age=18");
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
var json = JSON.parse(ajax.responseText);
fn(json);
}

posted @ 2022-10-08 21:36  枫已落  阅读(26)  评论(0)    收藏  举报