如何在X秒后使用“到达”的json数据?

时间:2013-02-14 20:16:10

标签: javascript jquery

我用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。

1 个答案:

答案 0 :(得分:2)

看起来您唯一的选择是使用setInterval定期检查数据是否可用。理想的方法是需要修改文件1。

function handleData(items) {
    // dostuff with items
}

var itemsInterval = setInterval(function(){
    if (items && items.length) {
        handleData(items);
        clearInterval(itemsInterval);
    }
},250);