如何使用$ .getJSON方法处理大型JSON响应

时间:2016-07-18 16:45:49

标签: javascript jquery json

我在本地JSON文件中有很多数据,我可以在每个$.getJSON上使用jQuery的keyup成功获取数据。

但是响应数据太大了,大约有1万条记录中的10000条记录,它会减慢所有页面的速度,有时会破坏浏览器。我知道有很多答案,但都是针对Ajax响应和服务器端可靠的。

使用$.getJSON处理大型json响应数据的最佳方法是什么?

这是我尝试过的事情

  1. 我试图打破响应并只显示20行 - 但我需要向用户显示所有数据

  2. 用于在页面滚动中显示20行和其他行 - 但是当我在每个keyup上获取数据时,这是不可能的

  3. jQuery代码

    $.getJSON(path + "abc.json", function(data){
        $('input').on('keyup', function(){
            var inputVal = $(this).val(),
            myExp = new RegExp(inputVal, "i"),
            sortedResultNames = [];
    
            if(inputVal.length >= 3){
                $.each(data, function(index, value){
                    if (value[searchTermsVal].search(new RegExp(inputVal,"i")) != -1) {
                        if( $(index).length < 20 ) {
                            sortedResultNames.push(value[searchTermsVal]);
                        } else {
                            return false;
                        }
                    }
                });
            }
        });
    });
    
    $(window).scroll(function() {
        if($(window).scrollTop() == $(document).height() - $(window).height()) {
            // get data after 20 rows from json response and append to the div
        }
    });
    

0 个答案:

没有答案