簡體   English   中英

在HTML5移動應用中實現數據庫

[英]Implementing Database in HTML5 Mobile App

我在決定為我的移動應用程序實施數據庫時遇到麻煩。 我正在將JavaScript與jquery mobile和phonegap結合使用,以希望部署到IOS和Android。 該數據庫基本上是大約60-70個位置名稱,描述,緯度和經度的列表。 即使用戶沒有Internet訪問權限,我也需要數據可用,並且需要執行查詢,例如按最近距離對位置進行排序。

有沒有一種方法可以預先創建數據庫文件並根據需要打開,還是我的應用每次打開時都需要創建數據庫? 即使關閉應用程序后,數據庫文件是否仍駐留在設備上?還是在重新啟動應用程序時再次創建數據庫文件?

有什么建議或例子嗎?

謝謝,

羅伯特

瀏覽器存儲有多種類型,例如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像數據庫續集 (看起來適合繁重的工作!)

直接在瀏覽器中運行的查詢代碼示例:

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

最簡單的方法是使用localStorage。

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

如果您需要存儲更多數據並進行復雜的查詢,請使用真實的數據庫。

兩者都可以在Cordova Docs on Storage中找到

還有pouch db 我將其與Ionic App一起使用。 效果很好,非常容易學習和使用。 我僅將本地存儲用於臨時使用的次要數據(在會話中)。 即使在關閉並重新打開應用程序時也要保留數據,Pouchdb的效果很好。 默認情況下,它的調用是異步的。 與Promises一起運作良好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM