2013-11-21 4 views
2

Я хотел бы перечислить большие данные в Kendo ComboBox (между 10k и 60k).Большие данные с Kendo ComboBox

Набор данных сохраняется в массиве Javascript для увеличения времени загрузки.

Моя проблема в том, что браузер замораживает. Он работает с 6k предметов, но он медленный. Он работает, когда данных мало.

Вот код:

var $input = $('<input class="criterion-value-input"/>'); 
var kendoParams = { 
    dataSource: dataSource, 
    dataTextField: 't', 
    dataValueField: 'v', 
    autoBind: true, 
    filter: 'contains', 
    placeholder: 'Valeur...', 
    suggest: false, 
    select: function(e) { 
     that._dataItem = this.dataItem(e.item.index()); 
    } 
}; 
$input.kendoComboBox(kendoParams); 

Источник данных выглядит следующим образом:

0: Object 
    t: "[7773077397] SAACY SUR MARNE (SAACY SUR MARNE)" 
    v: "7773077397" 
1: Object 
    t: "[6742067421] SAALES (SAALES)" 
    v: "6742067421" 
2: Object 
    t: "[7673076549] SAANE ST JUST (SAANE ST JUST)" 
    v: "7673076549" 
3: Object 
    t: "[6739067422] SAASENHEIM (SAASENHEIM)" 
    v: "6739067422" 
[...] 
60000: Object 
    t: "[1234512345] ZZZZZ (ZZZZZ)" 
    v: "1234512345" 

v это значение, т текст.

Количество мб.

Спасибо и извините за мой плохой английский.

ответ

1

Нет, такого предела нет, это вопрос памяти и процессора. Каждый элемент вашего ComboBox переводится в фрагмент кода HTML, который нужно отображать (несмотря на то, что он не отображается). Поэтому я бы сказал, что 60000 - это способ управления большим количеством узлов HTML (DOM).

Считаете ли вы использование server side filtering?

+0

, как бы я управлять загрузки позволяет говорить миллионов записей в ComboBox. в моем сценарии, когда я загружаю все это, он генерирует ошибку или слишком медленный –

+0

Имеет ли смысл загружать миллионы? Загрузка с сервера будет медленной, а также рендеринг. Почему бы не использовать фильтрацию на стороне сервера? – OnaBai

+0

как бы я это реализовать? например, я хочу отфильтровать его минимум на три буквы ?? но когда я нажму на значок стрелки, он запустит событие чтения. пожалуйста, пример сайта. потому что в нашем проекте мы используем combobox для поиска предметов, которые могут стать миллионами, и мы получили тайм-аут javascript. –

0

Добавить эту строку в DataSource:

PageSize:10 

Также 20 может быть хорошим значением PageSize. Однако не забудьте использовать PageSize менее 100, потому что Kendo может отображать не более 100 предметов Speedly.

В COMBOBOX HTML написать

filer:contains ... 

это решит вашу проблему

Смежные вопросы