localStorage,sessionStorage,session和cookies的技术优势和缺点是什么?我何时使用其中一个?
我在我的网站中有一些值,我希望在浏览器关闭时清除,我选择sessionStorage来存储该值,当选项卡关闭时清除它并在用户按f5时保持存储,但如果用户在不同的选项卡中打开一些链接这个值不可用.我如何在我的应用程序之间共享所有浏览器选项卡之间的sessionStorage值?
用例:将值放在某个存储中,在所有浏览器选项卡中保持该值可访问,如果所有选项卡都关闭则清除它.
if (!sessionStorage.getItem(key)) {
sessionStorage.setItem(key, defaultValue)
}
Run Code Online (Sandbox Code Playgroud) 用户可以禁用HTML5 sessionStorage他可以如何禁用cookie吗?
sessionStorage也会在页面刷新之前有效吗?我的意思是会话实际意味着什么,是页面刷新?
我正在尝试实现一种身份验证机制,其中每个浏览器选项卡可能以不同的用户身份登录.
以下是此系统的规则:
到目前为止我尝试过的:
使用cookies了私有和公共令牌:这不起作用,因为服务器无法知道看哪个饼干中如果用户点击从选项卡内的链接的方式,要求将所有的标签和所有的cookies服务器无法知道哪一个点击链接.
存储私有令牌sessionStorage:这不起作用,因为当用户点击链接时,无法指定应与HTTP GET请求一起发送的自定义标头.
使用AJAX请求页面,然后使用数据URI导航到内存中的页面:出于安全原因,Internet Explorer不允许对HTML内容使用DATA URI.请参阅http://msdn.microsoft.com/en-us/library/cc848897%28v=vs.85%29.aspx
使用<form method="get" enctype="multipart/form-data">隐藏字段使用和传递令牌:enctype ="multipart/form-data"仅支持POST.
使用<form method="post" enctype="multipart/form-data">隐藏字段并使用隐藏字段传递令牌:理论上,这应该可行但现在如果用户使用后退/前进按钮,则会提示用户重新提交表单数据.
使用AJAX请求页面,然后使用重写当前页面document.open(); document.write(); document.close().我想这两个/sf/answers/308326161/和http://forums.mozillazine.org/viewtopic.php?p=5767285&sid=d6a5a2e8e311598cdbad124e277e0f52#p5767285并在这两种情况下,在新的脚本<head>块永远不会执行.
有任何想法吗?
只是想知道在存储要在Javascript轮播中使用的HTML内容时使用HTML5的sessionStorage的实际好处是什么?
它与性能有关吗?加载时间?带宽?