大家好,欢迎来到IT知识分享网。
ajax同步模式和异步模式的区别就是在于,xhr.open()方法第3个参数传入的bool值的区别,xhr.open()方法第3个参数的作用就是设置此次请求是否采用异步模式执行,默认为true ,那么同步模式xhr.open()方法第3个参数值就是false了。
1.ajax异步模式:hr.open()方法第3个参数值为true(默认值)
console.log(‘before ajax’)
var xhr = new XMLHttpRequest()
// 默认第三个参数为 true 意味着采用异步方式执行
xhr.open(‘GET’, ‘./test.php’, true)
xhr.send(null)
xhr.onreadystatechange = function () {
if (this.readyState === 4) {
// 这里的代码最后执行
console.log(‘request done’) 10}
}
console.log(‘after ajax’)
2.ajax同步模式:hr.open()方法第3个参数值为false,以下这个例子采用同步方式执行,则代码会卡死在这一步:
console.log(‘before ajax’)
var xhr = new XMLHttpRequest()
// 同步方式
xhr.open(‘GET’, ‘./test.php’, false)
// 同步方式 执行需要 先注册事件再调用 send,否则 readystatechange 无法触发
xhr.onreadystatechange = function () {
if (this.readyState === 4) {
// 这里的代码最后执行
console.log(‘request done’) 10}
}
xhr.send(null)
console.log(‘after ajax’)
特别注意:同步模式和异步模式的差异,就是一定在发送请求之前注册事件,不管同步或者异步,为了让这个事件可以更加可靠一定要触发,一定是先注册了事件,切记不要使用同步模式。
除注明外的文章,均为来源:汤久生博客,转载请保留本文地址!
原文地址:http://tangjiusheng.com/ajax/149.html
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6958.html