[英]Nested JSON fetch using jQuery
我正在嘗試從Yammer創建一種RSS Feed類型的消息顯示。
<script type="text/javascript">
var cleanit = null;
$(document).ready(function(){ cleanit = setInterval('callYammer()', 50);});
function callYammer(){
clearInterval(cleanit);
$.getJSON("./yammer.feed?request=messages",function(json) {
var objYammer = $("#yammerFeed");
objYammer.html('');
$.each(json.messages, function(i, m) {
if(!m.replied_to_id && m.body.plain){
var data = "<li>" + m.body.plain;
$.getJSON("./yammer.feed?request=users&userid="+m.sender_id,function(jsonUser) {
//alert(jsonUser.full_name);
data = data + " - "+jsonUser.full_name;
});
data = data + "</li>";
objYammer.append(data);
}
});
});
return false;
}
</script>
我想顯示消息及其用戶名。 但是最后,從firebug調試器中,我看到的是內部JSON數據沒有按我期望的那樣追加。 盡管通話打到並且數據來自通話,但是
data =“-” + jsonUser.full_name;
在對用戶的所有JSON調用之后被執行。
如何將用戶名從內部JSON調用追加到主要JSON數據?
你打線
data = data + "</li>";
objYammer.append(data);
在內部getJSON AJAX調用之后的代碼中,但這可能導致這些行在AJAX請求完成之前執行。 將代碼放入內部AJAX成功函數中,以確保僅在結果可用后才將其觸發。
function callYammer(){
clearInterval(cleanit);
$.getJSON("./yammer.feed?request=messages",function(json) {
var objYammer = $("#yammerFeed");
objYammer.html('');
$.each(json.messages, function(i, m) {
if(!m.replied_to_id && m.body.plain){
var data = "<li>" + m.body.plain;
$.getJSON("./yammer.feed?request=users&userid="+m.sender_id,function(jsonUser) {
console.log('1:'+jsonUser.full_name);
data += " - "+jsonUser.full_name + "</li>";
objYammer.append(data);
console.log('2:'+data);
});
}
});
});
編輯:
剛剛添加了console.log()
語句。 他們返回什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.