虽然有很多关于html5的好东西,但我没有得到的一件事是redondant存储机制,首先是localstorage和sessionstorage,它们是键值存储,一个是应用程序的一个实例("一个选项卡" ),另一个适用于该应用程序的所有实例,以便他们可以共享数据.当你关闭浏览器并且大小有限(通常是5MB)时,两者都会被保存,这很好,如果我们停在那里,一切都会很好.
但是有一个"Web SQL数据库",它具有与localstorage相同的安全系统,相同的大小限制,除了它的工作原理之外的所有内容都像/ sqlite一样,具有表和sql语法以及所有这些.
糟糕的是,他们根本不会处理相同的数据!这不是两种访问数据的方式,这对于每个html 5应用程序来说真的是两个存储空间(默认情况下不是创建的,但是你仍然看到了我的观点).
我想知道的是,这两种机制同时存在的原因是什么?或者他们只是看看sql和nosql运动来挑选最好然后去"拧它让我们加两个!" ?为什么不在web sql db中实现本地/会话存储作为表?
我认为本地存储是对cookie应该首先完成的方式的正确改写.它具有非常简单的api和低采用率.
Web SQL是一项非常重要的工作,只需保存一个简单的值就会非常痛苦,因此它们的用例非常不同.localstorage实际上是使用SQLite在WebKit中实现的,但不是通过WebSQL公开的.
会话存储无法在数据库内轻松实现,因为它实际上在全局范围内,并且您不希望数据对其他选项卡可见.因为它是瞬态数据,所以通常不想存储批次,因此不需要事务和查询.
另见:http: //www.pubbs.net/200904/webkit/28373-webkit-dev-need-help-making-windowlocalstorage-span-processes.html