繁体   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