2014-02-19 3 views
1

У меня возникли проблемы с выбором горячей для реализации базы данных для моего мобильного приложения. Я использую javascript с jQuery mobile и phonegap, чтобы надеяться развернуть IOS и Android. База данных - это в основном список из 60-70 имен местоположений, описания, широты и долготы. Мне нужны данные, чтобы они были доступны, даже если у пользователя нет доступа к Интернету, и для этого необходимо выполнить такие запросы, как сортировка местоположений на ближайшем расстоянии.Реализация базы данных в мобильном приложении HTML5

Есть ли способ создать файл базы данных заранее и открыть по мере необходимости или мне нужно создать базу данных каждый раз, когда откроется мое приложение? Сохраняется ли файл базы данных на устройстве даже после закрытия приложения или его создания при повторном запуске приложения?

Любые предложения или примеры?

Спасибо,

Роберт

+0

Вы используете приложение из браузера? Или отдельно? – MJoraid

ответ

2

Есть несколько типов browser storage, такие как localStorage все они построены в и могут быть использованы непосредственно.

Объекты хранения являются недавним дополнением к стандарту. Таким образом, они не могут присутствовать во всех браузерах ......... Максимальный размер данных, которые могут быть сохранены, строго ограничен использованием файлов cookie.

Пример кода:

function storeMyContact(id) { 
    var fullname = document.getElementById('fullname').innerHTML; 
    var phone  = document.getElementById('phone').innerHTML; 
    var email  = document.getElementById('email').innerHTML; 
    localStorage.setItem('mcFull',fullname); 
    localStorage.setItem('mcPhone',phone); 
    localStorage.setItem('mcEmail',email); 
    } 

С другой стороны, LocalStorage может не хватить, поэтому внешние библиотеки приходят в руки, которые фактически используют браузеры, встроенные в хранилище и сделать БД работает кросс-браузеры.

1- SQL, как DB sequelsphere(выглядит как подходит для тяжелой работы!) Образец

код для запроса, который будет работать непосредственно из браузера:

SELECT empl_id, name, age 
    FROM empl 
WHERE age < 30 

2- JSON как DB taffydb(подходит для повседневной деятельности!)

// Create DB and fill it with records 
var friends = TAFFY([ 
    {"id":1,"gender":"M","first":"John","last":"Smith","city":"Seattle, WA","status":"Active"}, 
    {"id":2,"gender":"F","first":"Kelly","last":"Ruth","city":"Dallas, TX","status":"Active"}, 
    {"id":3,"gender":"M","first":"Jeff","last":"Stevenson","city":"Washington, D.C.","status":"Active"}, 
    {"id":4,"gender":"F","first":"Jennifer","last":"Gill","city":"Seattle, WA","status":"Active"} 
]); 

    // Find all the friends in Seattle 
    friends({city:"Seattle, WA"}); 

3- Так как вы упомянули мобильный, jstorage - это база данных хранилища ключей для кросс-браузера для локального хранения данных в браузере. JStorage поддерживает все основные браузеры, как на рабочем столе (да - даже Internet Explorer 6), так и на мобильных устройствах.

Если вы хотели бы иметь больше возможностей -> (client-side-browser-database)

+0

Фантастический! Таффигб отлично поработал! Было очень просто и даже имело функцию сортировки, в которой я нуждался. Спасибо, Джорайд! – BGecko

+0

Я всегда поклонник JSON. Рад помочь. – MJoraid

0

Проще было бы использовать LocalStorage.

window.localStorage.setItem("key", "value"); 
var value = window.localStorage.getItem("key"); 

Если вам нужно хранить больше данных и иметь сложные запросы, используйте настоящую базу данных.

Оба может быть найден в Cordova Docs on Storage

0

Существует также pouch db. Я использую его с моим Ionic App. Работает очень и очень просто, чтобы учиться и использовать.Я использую локальное хранилище только для незначительных временно используемых данных (в течение сеанса). Чтобы сохранить данные, даже когда приложение закрыто и снова открыто, Pouchdb отлично работает. По умолчанию это вызовы async. Хорошо работает с обещаниями.

+0

Просто записка. Для тех, кто не знаком, Ionic Framework основан на AngularJS. – Amrudesh

Смежные вопросы