我有一个包含实时匹配的JSON脚本。这些变化每5分钟一次。例如,更改可以是键live_in或得分。除此之外,还会删除匹配并添加到JSON中。我想保持我的html输出始终更新我怎样才能以最好的方式做到这一点?到目前为止,我已将更新速度设置为5秒以进行测试。到目前为止,我已尝试将divs id设置为等于match_id,从而通过
进行更新 $('div#match-date-id-' + match['match_id']).html('test');
但似乎没有更新。我怎样才能以最好的方式做到这一点?我已经创建了一个plnkr,您可以使用json片段下载它,可以对其进行编辑以进行检查。
plnkr.co/edit/eQCShhW01OG5jU4VLx04?p=preview
答案 0 :(得分:0)
我之前的不好:-)现在我已经做了更彻底的测试,并且更新了 plunker code。我在测试中发现:filter
试图使用 undefined 值(match.id
),过滤器也试图比较不同数据类型的值(字符串与整数);所以它没有按预期工作:
原件:
match = match.filter(
function(match) {
return match.id > lastId;
});
更正后的代码:
match = match.filter(
function(match) {
return parseInt(match.match_id) > lastId;
});
高于match_id
表示JSON文件中的String数据类型,因此我必须在比较之前将其转换为 Integer 。有关更多信息JSON data-types。遵循较早的filter
功能,没有匹配通过比较测试。
同样出于测试目的,我注释掉以下内容:
if (match.match_id > lastLoadedMatch) {
//lastLoadedMatch = match.match_id
}
因为在具有相同测试数据的第二轮更新中,没有数据通过该条件。
此外,我认为您还需要将match_id
转换为 Integer ;如下:
var matchId = parseInt(match.match_id)
if ( matchId > lastLoadedMatch) {
lastLoadedMatch = match.match_id
}
我希望你觉得它很有用:-) + note我为这些更新添加了一个时间戳;因此,可以清楚地看到更新现在每5秒发生一次。