在我的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