Как я могу сделать окно поиска для поиска в локальной базе данных?

Я играю с Apache Cordova и хочу реализовать окно поиска, которое может искать в списке или что-то подобное (локальная база данных?). Я хочу, чтобы он был локальным, чтобы приложению не требовалось подключение к Интернету для поиска.

Я хочу, чтобы он был настроен так, чтобы он мог искать как имя элемента, так и номер.


Пример 1:

Пользователь ищет: «Honda». Затем он будет перенаправлен на страницу, где будет отображена информация о «Хонде».

Пример 2:

Пользователь ищет идентификатор: «1337». Затем он будет перенаправлен на страницу, содержащую информацию о «Хонде».

Итак, «Хонда = 1337» и «1337 = Хонда», если вы понимаете?


Вопрос:

Мне интересно, какое решение удовлетворит мои потребности для этого проекта? или есть какие-то рамки для этого?

Заранее спасибо!


person BlitZz    schedule 21.07.2014    source источник
comment
У меня не так много опыта в разработке приложений, но я отвечаю на этот вопрос на основе своего опыта в веб-разработке. Ваш вопрос кажется несколько странным. Вы хотите выполнять все операции локально. Как вы должны поддерживать БД локально. Даже если вы можете, вы не должны хранить в ней большое количество значений. Размер БД может быть большим. Представьте, что ваше приложение Facebook хранит все данные, которые у вас есть локально, в памяти вашего телефона. Независимо от того, сколько у вас сжатой БД, вы все равно получите много памяти.   -  person anuj pradhan    schedule 21.07.2014
comment
То, что вы говорите, имеет большой смысл! Хотя, как тогда мне добиться локального поиска?   -  person BlitZz    schedule 21.07.2014
comment
Поскольку мобильные браузеры теперь поддерживают HTML 5. Мы можем воспользоваться appcache. Используя AppCache, вы можете кэшировать свои HTML-страницы. Но если у вас нет приложения HTML 5. Тогда я бы посоветовал взглянуть на локальное хранилище на основе приложений: devcenter.appery.io/tutorials/ stackoverflow.com/questions/10442211/ Для вариантов локального хранилища на основе HTML 5: html5rocks.com/en/features/storage   -  person anuj pradhan    schedule 21.07.2014


Ответы (1)


Это зависит от того, на что вы хотите, чтобы было похоже поле поиска и отправка.

Один из способов — использовать этот отличный инструмент http://ivaynberg.github.io/select2/. может загружать данные из базы данных (используя либо ajax, либо загружать все ваши данные и только фильтровать их) и показывает их в поле выбора. У вас может быть кнопка отправки или что-то в этом роде рядом с полем выбора.

Другим способом может быть использование http://www.datatables.net/, в котором есть окно поиска, которое может загружать данные в таблицу с помощью ajax, где вы можете получить дополнительную информацию и кнопку отправки для отправки пользователя на определенную страницу.

Есть много других инструментов для такого рода проблем, я использовал эти два, и я могу сказать

person charlie    schedule 21.07.2014
comment
Быстро осмотрел их обоих. Скажу, что datatables больше соответствует моим потребностям, за исключением того, что я не хотел бы показывать таблицу всего содержимого. Как вы думаете, возможно ли иметь пустую страницу только с окном поиска, а затем, когда вы нажмете поиск, вы будете перенаправлены на результаты? вместо того, чтобы смотреть их все? :) - person BlitZz; 21.07.2014
comment
Я бы сказал, добавьте прослушиватель событий в поле поиска, а когда оно будет пустым, либо сдвиньте вниз, либо скройте (или любую другую анимацию, которую вы хотите) к содержимому таблицы. Таким образом, вы можете непрерывно загружать данные, пока пользователь вводит какой-либо запрос, и отображать таблицу после выполнения некоторых критериев. Например, мы хотим показать таблицу, только если пользователь вводит 4 символа в поле поиска. Если вам нужна только пустая страница и поле поиска, я бы предложил переместить поле поиска с возможностью ввода данных в какое-либо место на странице и создать функцию для скрытия/скользящего содержимого таблицы. Но это всего лишь мое быстрое предложение, я уверен, что вы можете придумать что-нибудь более элегантное. - person charlie; 21.07.2014