XMLHttpRequest同步或异步
XMLHttpRequest Synchronous or Asynchronous
在我的JS中,我正在向比特发送一个get请求。ly api来缩短URL。问题是我需要在代码中使用返回的URL。
最好使用同步请求吗?因为它表示在XHR请求之后使用该位的任何代码。ly会失败,因为响应还没有返回短URL。
bitlyXHR.onreadystatechange = function() {
if (bitlyXHR.readyState == 4) {
if (bitlyXHR.status == 200) {
var obj = JSON.parse(bitlyXHR.responseText);
// Do something
}
}
};
bitlyXHR.open("GET", "http://api.bitly.com/v3/shorten?login=&apiKey=&longUrl=" + longURL + "&format=json");
bitlyXHR.send();
// Some code here that uses the short URL
你可以这样做:
function doSomething(obj) {
// this does something with the result.
}
bitlyXHR.onreadystatechange = function() {
if (bitlyXHR.readyState == 4) {
if (bitlyXHR.status == 200) {
var obj = JSON.parse(bitlyXHR.responseText);
doSomething(obj);
}
}
};
bitlyXHR.open("GET", "http://api.bitly.com/v3/shorten?login=&apiKey=&longUrl=" + longURL + "&format=json");
bitlyXHR.send();
将使用短URL的代码移动到具有Do something注释的代码部分,或者更好的是,从那里调用包含该代码的函数。
这样做被称为使用回调的。您提供一个稍后在请求返回时执行的函数。这是处理AJAX (A代表异步)请求的最佳方式,因为它不会在等待调用完成时锁定浏览器。相关文章:
- 异步获取数据使用JavaScript同步获取数据
- javascript函数中的异步与同步.(Node.js)
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- 如何模拟同步ajax调用?(基于异步的同步)
- 为什么同步睡眠功能没有被承诺内异步化
- 如何在异步函数与Deferredjquery之间同步
- 使用模态库从嵌套的异步调用中生成javascript同步代码
- 将数据发布到iframe是同步还是异步
- 节点.js / 续集.js / 快递.js - 如何插入多对多关联?(同步/异步?
- NodeJS中的异步与同步
- javascript如何成为一种同步语言并在浏览器和node.js环境中异步运行
- 如何同步2个异步瀑布
- 异步函数调用是否可以在两个同步语句之间完成
- 脚本和图像是同步加载还是异步加载
- 并行开发同步/阻塞和异步/非阻塞库api的好方法是什么?(JavaScript)
- 同步异步创建的承诺
- 基准测试引发错误的异步与同步代码
- 使用jQuery'管理同步和异步JavaScript函数;s延期
- 异步/同步Javascript
- 纠结于node.js中的异步同步