好的,我有一个基本的功能,可以获得2个Feed。我的问题是,异步运行的函数在执行函数获取两个feed之前都会跳转到alert函数(用于测试)。我确信这是一个可行的解决方案,但它让我摸不着头脑。这是脚本。我非常感谢你的帮助,谢谢!
function getFeeds(){
jQuery.getFeed({
url: 'proxy.php?url='+feed1,
success: function(feed) {
for(var i = 0; i < feed.items.length && i < 10; i++) {
var item = feed.items[i];
s_string += '<div class = \"cont_div a'+i+'\"><h2>'
/* + '<a href="'
+ item.link
+ '">'*/
+ item.title
/*+ '</a>'*/
+ '</h2></div>';
/* html += '<div class="updated">'
+ item.updated
+ '</div>';
html += '<div>'
+ item.description
+ '</div>';*/
}
}
});
jQuery.getFeed({
url: 'proxy.php?url='+feed2,
success: function(feed) {
for(var i = 0; i < feed.items.length && i < 10; i++) {
var item = feed.items[i];
s_string += '<div class = \"cont_div a'+i+'\"><h2>'
/* + '<a href="'
+ item.link
+ '">'*/
+ item.title
/*+ '</a>'*/
+ '</h2></div>';
/* html += '<div class="updated">'
+ item.updated
+ '</div>';
html += '<div>'
+ item.description
+ '</div>';*/
}
}
});
alert(s_string);
}
答案 0 :(得分:1)
您必须将这两个请求作为单独的时间轴处理:
代码是这样的:
function getFeeds(finished_callback) {
var feed_a_finished = false,
feed_b_finished = false,
s_string = "";
jQuery.getFeed( {
url: 'proxy.php?url='+feed1,
success: function(feed) {
/* Your code ... */
feed_a_finished = true;
if (feed_a_finished && feed_b_finished) {
finished_callback();
}
}
});
feed_b_finished = false;
jQuery.getFeed({
url: 'proxy.php?url='+feed2,
success: function(feed) {
/* Your code ... */
feed_b_finished = true;
if (feed_a_finished && feed_b_finished) {
finished_callback();
}
}
});
}
getFeeds(function () {
alert(s_string);
});