Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript, поиск данных локально от 10k до 200k записей / 15 сообщений из 15, страница 1 из 1
31.07.2015, 00:56
    #39019964
u78
u78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
Помогите придумать, как организовать хранение строк для поиска больших объёмов данных локально, в JavaScript

Скажем у меня в таблице на сервере 20k записей, связь с сервером плохая, поэтому храним и ищем локально. В таблице N колонок (переменнное количество) и искать нужно по вхождению хотя бы в одну колонку.
Тип данных - строка.

Вот пример таблицы
IDCol1Col2Col3rec1дорогалесполеrec2белкасовокметельrec3гусьрекамель

Как хранить данные в браузере? В массиве? Но ведь IE не поддерживает indexOf, как тогда искать? Перебором?
Какие могут быть ещё варианты для хранения и поиска данных локально, в браузере.

Единственное что приходит на ум - по два массива на каждую колонку:
Код: javascript
1.
2.
3.
4.
5.
6.
col1[0]=дорога
col1[1]=белка
col1[2]=гусь
col1Index[0]=rec1
col1Index[1]=rec2
col1Index[2]=rec3


Поиск по колонке 1 - перебор массива col1, находим ключ значения белка - это цифра 1 и по этому ключу в массиве col1Index получим ID записи: rec2

Кто нибудь делал такую схему? А если у меня неизвестное число колонок, как JavaScript узнает по каким массивам искать? Есть другие варианты?

HTML5 не используем :(
...
Рейтинг: 0 / 0
31.07.2015, 05:54
    #39020005
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78,
при таких ограничениях - забить на всё
...
Рейтинг: 0 / 0
31.07.2015, 08:27
    #39020032
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78Единственное что приходит на ум - по два массива на каждую колонку:
Код: javascript
1.
2.
3.
4.
5.
6.
col1[0]=дорога
col1[1]=белка
col1[2]=гусь
col1Index[0]=rec1
col1Index[1]=rec2
col1Index[2]=rec3


Поиск по колонке 1 - перебор массива col1, находим ключ значения белка - это цифра 1 и по этому ключу в массиве col1Index получим ID записи: rec2

Кто нибудь делал такую схему?
Это жуть!
Если есть желание выполнять какие-то поиски - делай "индексы". В свете JS это объект такого вида

Код: javascript
1.
2.
3.
4.
5.
6.
7.
{
   <ColN>: {
      <ключевое_выражение>: [
         <массив_ИД>
      ]
   }
}


Имея такой объект поиск по равенству будет весьма эффективным. Но создание дополнительного объекта будет съедать еще больше памяти.
...
Рейтинг: 0 / 0
31.07.2015, 10:13
    #39020128
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
А может быть, уже подумать о специализированном приложении или расширении для браузера, которое умеет работать с локальной БД ?
...
Рейтинг: 0 / 0
31.07.2015, 10:41
    #39020180
sqluserfromhell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
жрать память будет конкретно, самое простое поиск по отсортированному массиву с привязкой к конкретной row (что-то вроде кластерного индекса).
[
field1: rowobj1,
field2: rowobj2
]

и то профит будет при поиске вида field like 'somevariable%'
...
Рейтинг: 0 / 0
31.07.2015, 10:44
    #39020188
sqluserfromhell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
так точнее
sqluserfromhellжрать память будет конкретно, самое простое поиск по отсортированному массиву с привязкой к конкретной row (что-то вроде кластерного индекса).
Код: javascript
1.
2.
3.
4.
5.
[
 {sortedfield:a, fielda:valuea, fieldb:valueb, fieldc:valuec},
 {sortedfield:a1, fielda:valuea1, fieldb:valueb1, fieldc:valuec1},
  ....
]


и то профит будет при поиске вида sortfield like 'somevariable%'
...
Рейтинг: 0 / 0
31.07.2015, 11:44
    #39020242
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
IndexedDB
...
Рейтинг: 0 / 0
31.07.2015, 12:17
    #39020273
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78связь с сервером плохая
сколько?
"Плохая" - слово домохозяек.
...
Рейтинг: 0 / 0
31.07.2015, 15:29
    #39020536
u78
u78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
Petro123,

терминалы, GPRS, сейчас есть, через 15 минут нету.
...
Рейтинг: 0 / 0
31.07.2015, 17:13
    #39020697
sqluserfromhell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78Petro123,

терминалы, GPRS, сейчас есть, через 15 минут нету.
Посмотрите в сторону Extjs у них хорошо можно делать оффлайн приложения на js. + очень хорошая оптимизация для вывода огромных таблиц (рендеринг только визуальных записей)
...
Рейтинг: 0 / 0
31.07.2015, 17:45
    #39020733
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78Petro123,
терминалы, GPRS, сейчас есть, через 15 минут нету.
это не плохая связь. Это оффлайн приложение с синхронизацией по надобности.
Т.е. зачем вам браузер? В андроиде уже своя БД в операционке есть.
...
Рейтинг: 0 / 0
31.07.2015, 17:48
    #39020734
u78
u78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
Petro123,

Платёжные терминалы, наши пока без локальной БД живут, поэтому вот ищем в ОЗУ
...
Рейтинг: 0 / 0
02.08.2015, 10:17
    #39021113
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78Petro123,

Платёжные терминалы, наши пока без локальной БД живут, поэтому вот ищем в ОЗУКакая версия IE установлена на них?
...
Рейтинг: 0 / 0
02.08.2015, 11:20
    #39021125
Karbafos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
u78Petro123,

Платёжные терминалы, наши пока без локальной БД живут, поэтому вот ищем в ОЗУ

что мешает накалякать небольшой сервис, работающий с тем же sqlite, например, и выдающий рекордсет в json или xml?
тогда любой стандартный браузер, умеющий xmlhttprequest или jquery или еще что, будет работать весьма хорошо.
...
Рейтинг: 0 / 0
02.08.2015, 11:42
    #39021129
Karbafos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, поиск данных локально от 10k до 200k записей
Еще вариант: работать через ajax с файловой системой.
Режешь свою базу кубиками, каждый кубик складываешь в отдельный файл/директорию откуда при запросе читаешь только часть базы и там ищешь более предметно.
Т.е. своеобразный партишенинг делаешь.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript, поиск данных локально от 10k до 200k записей / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]