我用json填写一个列表。然而,json(php文件)在X秒后(未知时间)给出了结果。
外部文件 - 获取json数据:
$(function(){
// can't modify this file
$.getJSON('json.php',
function(data) {
items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
});
});
内联代码 - 输出:
<script>
$(function(){
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#result');
});
</script>
现在我在#result
中看不到任何内容,因为两个代码同时被加载,因此输出无法找到“项目”。
如何修改内联代码以强制它等到外部文件给我json数据?也许是观察者?
编辑:看起来我的解释不够好。对不起,我的英语很差。我也是Js / Jquery新手。编辑2:如果我们没有延迟获取json数据一切正常,但它取决于通过串行通信连接的一些外部设备,有时需要2,3或5秒才能获得json。
答案 0 :(得分:2)
看起来您唯一的选择是使用setInterval定期检查数据是否可用。理想的方法是需要修改文件1。
function handleData(items) {
// dostuff with items
}
var itemsInterval = setInterval(function(){
if (items && items.length) {
handleData(items);
clearInterval(itemsInterval);
}
},250);