在我的JS中,我发送一个get请求到bit.ly api来缩短URL。问题是我需要返回在代码中使用的URL。XMLHttpRequest同步或异步
最好为此使用同步请求吗?由于它代表使用bit.ly的XHR请求之后的任何代码都会失败,因为响应尚未返回短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
只需将“这里使用短URL的一些代码”而不是“做某事”的代码。 –
同步阿贾克斯是魔鬼。从不使用它。 – Raynos
尽管可以使用(或模仿)同步AJAX(XMLHTTPRequest),但由于许多原因它不是理想的,但其主体是Javascript的处理时间有限。因此,如果该过程需要更多时间才能返回,那么Javascript将挂起一条消息,指出该脚本花费的时间太多(几乎在所有浏览器中,除了Iexplorer)。 – magallanes