在ajax请求中管理从服务器返回的过多数据

时间:2012-02-01 16:44:11

标签: jquery

我有一个问题。我需要用一个项目列表填充一个下拉列表。我目前正在做的方式是选择前500名,但我真的需要那里的所有项目,可能有1000或更多。下面是我试图在网站崩溃时发回的数据量的粘贴。

http://pastebin.com/d5xjDvUR

Jquery的:

 $.ajax({
    type: "POST",
    url: "WebService.asmx/GetFinish1",
    data: '{' +
                    'Item:"' + item + '"' +
               '}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        //$("#item").val(msg);
        var data = jQuery.parseJSON(msg);
        if (!data.error) {
            $.each(data, function (d) {
                var areaText = $('#notes').val();

                if (data[d].Dropdown == "Finish1") {
                    if (data[d].Value != "") {
                        $("<option>").attr("value", data[d].id).text(data[d].Value).appendTo($('#dropFinish1'));
                    }
                }
                if (data[d].Dropdown == "Finish2") {
                    if (data[d].Value != "") {
                        $("<option>").attr("value", data[d].id).text(data[d].Value).appendTo($('#dropFinish2'));
                    }
                }
                if (data[d].Dropdown == "Length") {
                    if (data[d].Value != "") {
                        $("<option>").attr("value", data[d].id).text(data[d].Value).appendTo($('#dropLength'));
                    }
                }
                if (data[d].Dropdown == "Unit") {
                    if (data[d].Value != "") {
                        $("<option>").attr("value", data[d].id).text(data[d].Value).appendTo($('#dropUnit'));
                    }
                }
                if (data[d].Dropdown == "Notes") {
                    if (data[d].Value != "") {
                        $('#notes')[0].value = areaText + data[d].Value;
                    }
                }
            });

1 个答案:

答案 0 :(得分:1)

我认为没有人想要在下拉列表中挖掘1000多个项目,除非它是某种自动完成下拉,你可以输入提示。即便如此,听起来有太多的数据。我将专注于尝试通过让用户输入一些信息来将数据集分成几部分。如果您可以获得一些信息来使查询结果达到该大小的十分之一,那么您的状态就会很好。这就是我之前解决这个问题的方法。