2011-07-14 23 views
1

我们希望在新项目中使用HTML5 sessionStorage(或类似的东西),但在某些浏览器上不能依赖它。这个项目(http://code.google.com/p/sessionstorage/)提供了一个可以在很多地方工作的实现,但奇怪的是,如果可用,它不会使用HTML5版本。它总是做自己的事情。是否有HTML5 sessionStorage的包装提供了良好的兼容性实现?

在GitHub上有这个项目(https://github.com/jas-/jQuery.handleStorage但它的仿真层是cookies(bleh!)

注:以上内容不正确,请参阅jas-下面的答案,他解释说我误解了该项目。

还有什么比这更好的提供了像第一个项目一样好的实现,但如果可用则会自动回落到HTML5?如果可以的话,我们可能会将第一个项目改造为自动回退到HTML5,但如果已经有了一个好的解决方案,那么我们不会构建它。

+0

[Google Gears/HTML5的JavaScript包装器]的可能重复(http:// stackoverflow。com/questions/3889583/javascript-wrapper-for-google-gears-html5) – symcbean

+0

不,绝对不是重复的。那是关于Google Gears和HTML5的共同点。我们需要的解决方案不仅仅是这两个用户的子集。 robertc提到的StorageLite实际上是理想的,它对许多使用其他机制的不同浏览器都具有后备功能。我可能会看看,看看YUI3的开销是否足够低,我们不会在乎,或者我们是否可以将它移植到jQuery。 –

回答

0

我最终在这方面做了更多的研究,因为我喜欢我得到的两个答案,但我想要更像YUI 3:Storage Lite的东西,但不需要YUI。一些框架不可知或jQuery友好的东西对我们来说会更好。

最后,我发现一对夫妇的可能性,一个站出来为我们会尽力并投入使用:Lawnchair

也认为:store.jsAmplifyJS

+0

想知道为何选择AmplifyJS的Lawnchair吗? – RedWolves

+1

-1您选择的解决方案似乎与您的原始问题的标准不符:在我看来,所有提到的3个选项都不支持基于会话的存储,只存在于会话间的持久性存储(例如localStorage和UserData) 。 store.js甚至专门提到:https://github.com/marcuswestin/store.js#no-sessionstorageauto-expiration。我意识到这是你自己的解决方案,但作为其他人学习的SO项目,我必须对其进行降级(至少在原始问题更新之前)。 – tsemer

1

我知道你说你想要一个解决方案,但是这样做有什么问题吗?

if(!window.sessionStorage){ 
    $.getScript("/google_code_sessionStorage.js"); 
} 
+0

果然如此。如果仿真很好(我还没有将这些方法并排比较),那么我们可以进行测试,加载代码并将正常存储对象或仿真器的实例分配给变量,然后只需要几行代码就可以开心。 –

1

有此一对夫妇的YUI实用工具,这取决于您是否使用2或3:

都将使用HTML5会话存储如果可供使用的话。

+0

目前我们没有使用YUI,我们使用jQuery来处理所有事情。但这些看起来像是出色的解决方特别是Storage Lite和它广泛的仿真。这很让人佩服。 –

+0

@JohnMunsch YUI2有点单一,但YUI3有一个动态加载和最小交付的选项负载,所以你可以[只需加载你需要的位](http://developer.yahoo.com/yui/3/ yui /#use) – robertc

1

Munsch电子邮件,

我实现这个职位已经有几年了,但我想澄清你提到的项目,我是jQuery.handleStorage的作者,它不使用cookies作为客户端存储的默认方法。

如果您阅读了该项目的文档,您将看到其三种客户端存储选项之一是在客户端浏览器不支持HTML5 localStorage和/或sessionStorage API的情况下使用cookie。因此,如果您需要一个更强大和更灵活的客户端存储工具,我会推荐secStore.js,因为它不隐式地要求绑定到表单,支持HTML5客户端存储选项,优雅地降级到cookie旧版浏览器,并可选择使用SJCL API为可能的敏感数据提供透明加密。

+0

对于误解您的项目我深表歉意,我会编辑以澄清上述内容。另外,即使这是一个非常古老的问题,谢谢你提供答案,我从经验中知道人们仍然会遇到这些旧问题,并从中获得帮助。至于我自己,我自己再也不需要这个了,现在我们支持的所有浏览器都支持localStorage和sessionStorage,所以现在可以轻松处理本地缓存数据。 –

+0

不用担心,我应该为两者做的一件事是删除jQuery依赖项。 –

相关问题