Я работаю над SPA, использующим BreezeJS и AngularJS, обрабатывая множество объектов (один из типов имеет ~ 60k объектов). Это не обычный веб-сайт, это сделано для определенной цели.BreezeJS: Indexed Cache
В большинстве случаев сущности отображаются в отсортированных списках.
Вышеупомянутая масса сущностей кэшируется и запрашивается в рабочем потоке, поэтому пользовательский интерфейс не блокируется. Мы хотим, чтобы связь между клиентом и сервером была минимальной после инициализации приложения, следовательно, необходимо кэшировать множество данных.
Результаты entityManager
в рабочем потоке импортируются в entityManager
в потоке пользовательского интерфейса, и далее следует дальнейшая обработка. Все это прекрасно работает, моя единственная проблема в том, что выполнение orderBy
на таком огромном наборе данных слишком длительное время для завершения Бриза (2,5-3,5 сек) без индексов.
Это означает, что показ следующей страницы является неприемлемо медленным, если порядок на месте.
- Есть ли способ оснастить кеш Бриз индексами и заставить Бриз использовать их каким-то образом?
- Если нет, эта функция планируется реализовать?
Я мог бы, конечно, создать индексы для этой конкретной модели и исправить запрос, который нужно запустить против кеша, но его будет нелегко поддерживать, учитывая, что набор данных разрешен для изменения.
С уважением, это имеет смысл. Я также не планирую внедрять деревья индексов на стороне клиента, но поскольку гораздо проще сортировать по целым числам, а не сравнивать строки, эти индексы (:)) действительно будут простыми объектными картами, благодаря которым сортировка может быть выполнена быстрее , –