Bob*_*ala 2 javascript sql cookies html5 local-storage
基于我在SO上看到的大量搜索结果,HTML5的localStorage功能似乎仅在您关心存储不需要传输到服务器的大部分数据时才对Cookie有益.(本地存储与Cookie)
我很难知道如何/为什么有人会使用这个功能.任何人都可以提供一个链接到一个真实世界的例子,说明localStorage是如何受益的吗?
此外,是否有一种情况,localStorage将用于......说...将某些信息写入SQL数据库?
很抱歉,如果这是本网站上无数HTML5问题的副本.我已经阅读了一些,他们都没有完全回答我的问题.提前致谢!
localStorage是存储应用程序设置的好地方,您希望在会话之间保持这些设置(而不是sessionStorage),而不是传输到服务器(而不是cookie).以前,为了避免不必要地将基于cookie的设置传输到服务器,您必须仅为cookie使用不同的子域.
下一个重要的优点是虽然在引擎盖下localStorage使用SQLite,但浏览器会将所有localStorage值缓存在内存中.因此,虽然使用数据库API,每个executeSql语句都是异步的,并且需要回调函数来获取数据,但localStorage完全同步,因为它直接从内存缓存中获取数据.这意味着从localStorage存储和检索大块数据非常快.
实现localStorage对象的方式也使得在代码中使用非常简单直观.例如,你知道吗,而不是使用getItem,setItem你可以像任何其他对象一样使用localStorage吗?
localStorage.someKeyName = 'someValue';
alert(localStorage.someKeyName); // alerts 'someValue'
delete localStorage.someKeyName; // removes the key
Run Code Online (Sandbox Code Playgroud)
将其与从数据库中检索单个记录所需的代码量进行比较:
var db = openDatabase('myDb', '', '', 1024);
db.compatibleReadTransaction(function (t) {
t.executeSql('SELECT someField FROM someTable WHERE somePrimaryKey = 1', function(t, r) {
console.log(r.rows.item(0));
}, function () {
// error
});
});
Run Code Online (Sandbox Code Playgroud)
现实世界的例子
g.joeblade.com上的Guardian Web应用程序将所有文章内容存储在localStorage中.这意味着页面加载是即时的.如果要将内容存储在数据库中,那么它几乎不会像从数据库中异步获取每篇文章一样快,然后就会调用SQLite查询引擎,运行回调等开销.上.