我正在使用ajax和json渲染页面。我的json的结构是{"status":"ok","rewards":[{"id":201,"points":500},{"id":202,"points":500}]
如果在任何散列中“点”重复,我如何使ajax只加载一次数据?
E.g。我有几个哈希的json,其中'points'具有相同的值 这是我的代码
$("#page").live('pagecreate', function(e) {
var request = $.ajax({
type: "GET",
url: "example.com/file.json",
dataType: "json",
error: function (data, tex
tStatus){
console.log( status );
console.log( data );},
success: function (data, textStatus){
console.log( "success" );
console.log( status );
console.log( data );
}
})
request.success(function(data, textStatus){
var lis = "";
var seen = {};
$.each(data.rewards, function(key, val){
lis += "<div class = 'reward-ui ui-block-" + String.fromCharCode(97 + key%3) + "'><a href ='#' class ='ui-link-inherit'>" + val.points + "</a></div>";
});
$(".ui-grid-b").html(lis);
});
//$('.even-odd').listview('refresh');
})
});
答案 0 :(得分:2)
添加一个本地数组,用于存储所有使用的项目。在$ .each函数中推入此数组,然后在执行lis + =“”之前检查temp数组中是否已存在该值。
除此之外,您可以在检索数据之前尝试服务器端排序......如上所述。