powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript, поиск данных локально от 10k до 200k записей
15 сообщений из 15, страница 1 из 1
JavaScript, поиск данных локально от 10k до 200k записей
    #39019964
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите придумать, как организовать хранение строк для поиска больших объёмов данных локально, в 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
JavaScript, поиск данных локально от 10k до 200k записей
    #39020005
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u78,
при таких ограничениях - забить на всё
...
Рейтинг: 0 / 0
JavaScript, поиск данных локально от 10k до 200k записей
    #39020032
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
JavaScript, поиск данных локально от 10k до 200k записей
    #39020128
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может быть, уже подумать о специализированном приложении или расширении для браузера, которое умеет работать с локальной БД ?
...
Рейтинг: 0 / 0
JavaScript, поиск данных локально от 10k до 200k записей
    #39020180
sqluserfromhell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жрать память будет конкретно, самое простое поиск по отсортированному массиву с привязкой к конкретной row (что-то вроде кластерного индекса).
[
field1: rowobj1,
field2: rowobj2
]

и то профит будет при поиске вида field like 'somevariable%'
...
Рейтинг: 0 / 0
JavaScript, поиск данных локально от 10k до 200k записей
    #39020188
sqluserfromhell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так точнее
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
JavaScript, поиск данных локально от 10k до 200k записей
    #39020242
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IndexedDB
...
Рейтинг: 0 / 0
JavaScript, поиск данных локально от 10k до 200k записей
    #39020273
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u78связь с сервером плохая
сколько?
"Плохая" - слово домохозяек.
...
Рейтинг: 0 / 0
JavaScript, поиск данных локально от 10k до 200k записей
    #39020536
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

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

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

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

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

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

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


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