我有最奇怪的錯誤,我的Javascript函數行爲有所不同,具體取決於是否在特定行上設置警報。空警報更改函數行爲
基本上,代碼如下所示:
var friendsHtml = 'Error String';
$.get("url", function(xml){
$(xml).find('friend').each(function(){
friendsHtml = 'html stuff';
});
});
var div = '<div>'+friendsHtml+'</div>';
$("#friends_window").html(div);
這將始終顯示錯誤字符串,而不是HTML字符串。 但是,當我在這條線添加一個空的警告,一切都運行得很好:
var friendsHtml = 'Error String';
$.get("url", function(xml){
$(xml).find('friend').each(function(){
friendsHtml = 'html stuff';
});
});
alert("");
var div = '<div>'+friendsHtml+'</div>';
$("#friends_window").html(div);
我真的不明白這一點。
當然!我必須提出一個同步的請求才能工作。 – Dreiven 2012-03-04 21:31:44
@Dreiven儘可能避免同步請求,因爲在請求完成之前它們會阻塞用戶界面。你的代碼看起來不那麼重要,所以使用正確編碼的回調方法的異步請求應該很好地完成這項工作。 – 2012-03-04 21:33:10