我有最奇怪的错误,我的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