|
|
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
Помогите придумать, как организовать хранение строк для поиска больших объёмов данных локально, в JavaScript Скажем у меня в таблице на сервере 20k записей, связь с сервером плохая, поэтому храним и ищем локально. В таблице N колонок (переменнное количество) и искать нужно по вхождению хотя бы в одну колонку. Тип данных - строка. Вот пример таблицы IDCol1Col2Col3rec1дорогалесполеrec2белкасовокметельrec3гусьрекамель Как хранить данные в браузере? В массиве? Но ведь IE не поддерживает indexOf, как тогда искать? Перебором? Какие могут быть ещё варианты для хранения и поиска данных локально, в браузере. Единственное что приходит на ум - по два массива на каждую колонку: Код: javascript 1. 2. 3. 4. 5. 6. Поиск по колонке 1 - перебор массива col1, находим ключ значения белка - это цифра 1 и по этому ключу в массиве col1Index получим ID записи: rec2 Кто нибудь делал такую схему? А если у меня неизвестное число колонок, как JavaScript узнает по каким массивам искать? Есть другие варианты? HTML5 не используем :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 00:56 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78, при таких ограничениях - забить на всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 05:54 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78Единственное что приходит на ум - по два массива на каждую колонку: Код: javascript 1. 2. 3. 4. 5. 6. Поиск по колонке 1 - перебор массива col1, находим ключ значения белка - это цифра 1 и по этому ключу в массиве col1Index получим ID записи: rec2 Кто нибудь делал такую схему? Это жуть! Если есть желание выполнять какие-то поиски - делай "индексы". В свете JS это объект такого вида Код: javascript 1. 2. 3. 4. 5. 6. 7. Имея такой объект поиск по равенству будет весьма эффективным. Но создание дополнительного объекта будет съедать еще больше памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 08:27 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
А может быть, уже подумать о специализированном приложении или расширении для браузера, которое умеет работать с локальной БД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:13 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
жрать память будет конкретно, самое простое поиск по отсортированному массиву с привязкой к конкретной row (что-то вроде кластерного индекса). [ field1: rowobj1, field2: rowobj2 ] и то профит будет при поиске вида field like 'somevariable%' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:41 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
так точнее sqluserfromhellжрать память будет конкретно, самое простое поиск по отсортированному массиву с привязкой к конкретной row (что-то вроде кластерного индекса). Код: javascript 1. 2. 3. 4. 5. и то профит будет при поиске вида sortfield like 'somevariable%' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:44 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
IndexedDB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 11:44 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78связь с сервером плохая сколько? "Плохая" - слово домохозяек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:17 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
Petro123, терминалы, GPRS, сейчас есть, через 15 минут нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 15:29 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78Petro123, терминалы, GPRS, сейчас есть, через 15 минут нету. Посмотрите в сторону Extjs у них хорошо можно делать оффлайн приложения на js. + очень хорошая оптимизация для вывода огромных таблиц (рендеринг только визуальных записей) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 17:13 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78Petro123, терминалы, GPRS, сейчас есть, через 15 минут нету. это не плохая связь. Это оффлайн приложение с синхронизацией по надобности. Т.е. зачем вам браузер? В андроиде уже своя БД в операционке есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 17:45 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
Petro123, Платёжные терминалы, наши пока без локальной БД живут, поэтому вот ищем в ОЗУ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 17:48 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78Petro123, Платёжные терминалы, наши пока без локальной БД живут, поэтому вот ищем в ОЗУКакая версия IE установлена на них? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2015, 10:17 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
u78Petro123, Платёжные терминалы, наши пока без локальной БД живут, поэтому вот ищем в ОЗУ что мешает накалякать небольшой сервис, работающий с тем же sqlite, например, и выдающий рекордсет в json или xml? тогда любой стандартный браузер, умеющий xmlhttprequest или jquery или еще что, будет работать весьма хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2015, 11:20 |
|
||
|
JavaScript, поиск данных локально от 10k до 200k записей
|
|||
|---|---|---|---|
|
#18+
Еще вариант: работать через ajax с файловой системой. Режешь свою базу кубиками, каждый кубик складываешь в отдельный файл/директорию откуда при запросе читаешь только часть базы и там ищешь более предметно. Т.е. своеобразный партишенинг делаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2015, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=68&tid=1445818]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 447ms |

| 0 / 0 |
