-1

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

4

1 回答 1

2

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

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

var itemsInterval = setInterval(function(){
    if (items && items.length) {
        handleData(items);
        clearInterval(itemsInterval);
    }
},250);
于 2013-02-14T20:20:44.550 回答