Ajax慢慢读取大型json文件

时间:2015-10-15 13:32:10

标签: json ajax performance autocomplete

我正在使用AJAX读取大型JSON文件(大约15 MB缩小),以便在文本字段上显示自动完成建议。

问题是,在用户输入4个字符以便开始建议之后,我必须等待大约20到60秒,这实际上无法使用它。

我不知道如何让它更快地读取JSON文件。

我想看看你的建议......

我的AJAX请求是:

$(document).ready(function(){

$("#card").autocomplete({
    source: function (request, response) {
        $.ajax({
            dataType: "json",
            data: {
                term: request.term,
            },
            type: 'GET',
            contentType: 'application/json; charset=utf-8',
            xhrFields: {
                withCredentials: true
            },
            cache: true,
            url: base_url+'/test123/wp-content/plugins/trading-collectible-cards/public/js/AllSets.json',
            success: function (data) {

var keys = Object.getOwnPropertyNames (data)
var outputArray;

    $.each(keys,function(ele, val){

var array = $.map(data[val].cards, function (set) {
                    return {
                        label: set.name + " (" +data[val].name + ")",
                        value: set.name,
                        text: set.text,
                        multi: set.multiverseid,
                        rarity: set.rarity,
                        setname:keys[ele],
                        setfull:data[val].name
                    }
                });     
  if (ele == 0)
       outputArray = $.merge([], array);
  else {
       outputArray = $.merge(outputArray, array);
   }  
});
    response($.ui.autocomplete.filter(outputArray, request.term));
},
    error: function (data) {
}
        });
    },
    minLength: 3,
    open: function () {

    },
    close: function () {

    },
    focus: function (event, ui) {

    },
    select: function (event, ui) {
        $( "#card" ).val( ui.item.label );
        $( "#description" ).html( ui.item.text );

    }
});

0 个答案:

没有答案