Amit Kumar Tiwari Ответов: 3

Большой объем данных в выпадающем списке multi select


Я использую MVC4 .NET framework 4.5 с jQuery. База находится в Hadoop. Бизнес-пользователи хотят, чтобы одностраничный пользовательский интерфейс был чрезвычайно быстрым и плавным. Никаких задержек.

Я должен отобразить 5,00 000 (5 сотен тысяч/5 лаков) записей (показать имена)в раскрывающемся списке с возможностью поиска Multi select.

Пожалуйста, подскажите, как я могу добиться быстрого и отзывчивого пользовательского интерфейса с таким объемом данных, чтобы пользователь мог быстро искать запись и выбирать несколько отображаемых имен в кратчайшие сроки. Это критически важное для бизнеса приложение, и оно не может позволить себе запаздывать. Спасибо.

Что я уже пробовал:

1) до сих пор я пытался кэшировать все имена шоу в ASP.NET кэшируется при загрузке приложения в IIS, а затем выбрасывается в виде массива JSON в пользовательский интерфейс. Но multi select не может обрабатывать этот объем данных (я использую выпадающий элемент управления multi select из данные-модели поведения/примеры/и JS/jQuery как-множественный мастер · Марак/данных поведения · на GitHub[^] ).

Я попытался загрузить выпадающий список из массива JSON в качестве поиска пользователя. Это близко, но все же не очень текуче.

2) асинхронная загрузка данных в выпадающем списке во время поиска. Но этот подход отстает.

3) Загрузите все сразу в выпадающем списке. Не работает.

3 Ответов

Рейтинг:
9

BillWoodruff

Иногда вам приходится "просвещать" пользователя / клиента о том, что возможно, и разъяснять им/для них, какая функциональность им действительно нужна.

Я не могу себе представить, чтобы кто-то прокручивал список-UI с таким количеством записей: наверняка существует какой-то принцип организации/сортировки, по которому вы можете классифицировать данные в кластеры; или потребности пользователя могут быть удовлетворены с помощью средства поиска с функциями дикой карты.

Если возможно, встретьтесь с клиентом и понаблюдайте за тем, что он делает сейчас, и постарайтесь понять, какие возможности ему нужны.


Amit Kumar Tiwari

Вы правы, наверное, мне нужно поговорить с бизнес-пользователями. Мы не волшебники, у нас иногда есть ограничения.

Рейтинг:
14

Patrice T

Цитата:
Бизнес-пользователи хотят, чтобы одностраничный пользовательский интерфейс был чрезвычайно быстрым и плавным. Никаких задержек.
Я должен отобразить 5,00 000 (5 сотен тысяч/5 лаков) записей (показать имена)в раскрывающемся списке с возможностью поиска Multi select.

Эти 2 предложения противоречат друг другу, вы не можете иметь их одновременно.
Выпадающий список из 500 тысяч строк также будет непрактичен в использовании. Выпадающий список с 500 строками уже трудно использовать.
Multi select-это плохая идея с 500k линиями.
Цитата:
Что я уже пробовал:
Существует множество способов провалить то, что вы пробовали, будет трудно проверить, что вы сделали без кода.

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


Рейтинг:
0

Dave Kreskowiak

Нет такой вещи, как" отсутствие задержки", если вы настаиваете на попытке передать клиенту 500 000 записей. Еще меньше, если вы попытаетесь отформатировать в HTML такой объем данных.

Вы должны отображать только то, что пользователь действительно может видеть. Это означает пейджинг. Отображение только одной страницы данных за раз, все, что поместится на экране. Если вы собираетесь выполнить фильтрацию, вы должны выполнить фильтрацию в базе данных, чтобы она передавала только количество отфильтрованных записей, которые поместятся на странице. Заставьте базу данных выполнять тяжелую работу по фильтрации и подкачке страниц как можно больше. Это уберет самое "отставание".

Вы не собираетесь полностью устранять отставание. Вы можете сделать только то, что можете, чтобы свести его к минимуму.


Amit Kumar Tiwari

Проблема в том, что пользователь хочет искать любой случайный элемент и в то же время хочет видеть все данные. Они будут прокручивать список и выбирать все, что им покажется полезным, или вводить ключевые слова, если они знают этот пункт.

Dave Kreskowiak

Физически невозможно показать 500 000 записей на любом мониторе размером меньше футбольного поля.

Вы должны делать пейджинг, даже с прокруткой. Нет другого способа сделать это без задержки.

[no name]

Ваш "пользователь" понятия не имеет, о чем он просит. Это зависит от вас, чтобы установить их ожидания, а не слепо делать то, что они думают, что хотят.