[英]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");
如果您需要存储更多数据并进行复杂的查询,请使用真实的数据库。
还有pouch db 。 我将其与Ionic App一起使用。 效果很好,非常容易学习和使用。 我仅将本地存储用于临时使用的次要数据(在会话中)。 即使在关闭并重新打开应用程序时也要保留数据,Pouchdb的效果很好。 默认情况下,它的调用是异步的。 与Promises一起运作良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.