Promise+ajax && async+await+promise+ajax
来源:互联网 发布:淘宝销售属性怎么添加 编辑:程序博客网 时间:2024/05/16 11:00
Peomise+Ajax
//创建XHR对象function creatXHR() { var xhr; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else if(window.ActiveXObject('MicrosoftXMLHTTP')){ xhr = new ActiveXObject(); }else{ console.log('your brower can not support XMLHttpRequest'); } return xhr;}function getAjax(url) { var xhr = creatXHR(); return new Promise(function (resolve,reject) { xhr.onreadystatechange = function () { if(xhr.readyState == 4){ if(200 <= xhr.status <= 304){ resolve(xhr.responseText); }else{ reject('error reject'); } } }; xhr.open('GET',url); xhr.send(null); });}getAjax('data.js').then(function (msg) { console.log(msg);});
async+await+promise+ajax
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div class="scriptText"></div><script> var url = 'http://o4j806krb.qnssl.com/public/index.min.aeb155e1.min.js'; var xhr = new XMLHttpRequest(); var text; function getScript(url) { return new Promise(function (resolve,reject) { xhr.onreadystatechange = function () { if(xhr.readyState === 4 && xhr.status === 200){ text = xhr.responseText; resolve(xhr.responseText); } }; xhr.open('GET',url); xhr.send(null); }); } var processMessage = function(url) { var ele = document.getElementsByClassName('scriptText')[0]; getScript(url); ele.innerHTML = text; }; var processMessageAsync = async function(url) { var ele = document.getElementsByClassName('scriptText')[0]; await getScript(url);//await必须在async环境中 ele.innerHTML = text; }; processMessage(url);//这里测试不用async时的情况,页面显示undefined setTimeout(function () { processMessageAsync(url);//3s后页面显示获取到的内容 },3000);//上面ajax能跨域获取数据的原因是o4j806krb.qnssl.com服务器将其资源的CORS设置为acces-control-allow-origin为*</script></body></html>
阅读全文
0 0
- Promise+ajax && async+await+promise+ajax
- promise 和async await
- async/await && promise
- Async/await和promise
- Promise 、Async/Await的使用
- Promise,同步异步,Async/await
- Promise、Async/Await的使用
- ajax&promise
- ES6总结--Promise 、Generator 、Async/Await
- 关于Promise与async/await的例子
- async 和await的结合promise用法
- Promise.js with AJAX
- ajax 、jsonp 、Promise 封装
- Promise,Ajax,fetch
- promise中调用ajax
- 手写promise版本ajax
- 封装ajax和Promise
- promise wrap ajax
- 关于卷积的一个血腥的讲解,看完给跪了
- MS时序分析算法
- 共用体和结构体所占内存大小的计算方法一
- POJ 2492 A Bug's Life (并查集加强版)
- GitHub入门(5)团队协同工作
- Promise+ajax && async+await+promise+ajax
- 遍历本驱动设备链 (附加)设备栈上的设备 信息
- 船舶安装测量一次过程记录2017年7月
- iOS 提升SQLite数据插入效率低、速度慢的方法
- Redis环境搭建与Jedis
- 工作室神器:迈拓维矩键盘鼠标同步操作器
- Arrays的使用
- Parcel的简单例子
- Spring boot 下使用Quartz