Javascript 为什么不是';Chrome中的本地存储持久化?

Javascript 为什么不是';Chrome中的本地存储持久化?,javascript,google-chrome,local-storage,Javascript,Google Chrome,Local Storage,我试图通过以下代码学习如何使用localStorage js对象 <!DOCTYPE html> <html> <head> <script type="text/javascript"> function saveStuff() { sessionStorage.setItem('sessionKey', 'sessionValue'); localStorage.setItem('localKey', 'localValue')

我试图通过以下代码学习如何使用localStorage js对象

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveStuff() {
    sessionStorage.setItem('sessionKey', 'sessionValue');
    localStorage.setItem('localKey', 'localValue');
}
</script>
</head>
<body>
<button type="button" onclick="saveStuff()">Save</button>
</body>
</html>

函数saveStuff(){
setItem('sessionKey','sessionValue');
setItem('localKey','localValue');
}
拯救
我知道这并不总是适用于file://,所以我使用mongoose来提供它。当我点击save按钮时,结果在Chrome的JavaScript控制台中看起来是正确的。但是,当我按“刷新”时,本地存储和会话存储都会被清除,因为我希望本地存储值会保持不变。这在两个
http://127.0.0.1/
http://localhost/

有人知道为什么会这样吗?在设置、内容设置中,我选择了“允许设置本地数据(推荐)”,并取消选中“阻止第三方cookie和站点数据”。我的代码中遗漏了什么吗


(Chrome版本23.0.1271.64 m)

正常。谢谢你,我必须去pimvdb,但这里有一个解决方案

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveStuff() {
    sessionStorage.setItem('sessionKey', 'sessionValue');
    localStorage.setItem('localKey', 'localValue');
}
localStorage.getItem('localKey');
sessionStorage.getItem('sessionKey');
</script>
</head>
<body>
<button type="button" onclick="saveStuff()">Save</button>
</body>
</html>

函数saveStuff(){
setItem('sessionKey','sessionValue');
setItem('localKey','localValue');
}
getItem('localKey');
getItem('sessionKey');
拯救
总结似乎是,您必须尝试读取密钥才能持久化它

结论:WTF.

我不明白为什么在开发工具中的
localStorage
中看不到某些东西,但在控制台中键入
localStorage
时可以看到它。好的,如果您在Dev Tools打开的情况下存储某些内容,您将不会看到
应用程序->本地存储
为您的主机列出任何内容。当我关闭/重新打开开发工具时,我可以看到我的数据


总之,关闭/重新打开开发工具

这把小提琴有用吗?当您单击“保存”然后重新加载页面时,我确实获得了存储的值。是的。这意味着为了保持保存的值,必须尝试读取它?这对我来说毫无意义。你确定没有以任何方式调用
localStorage.clear()
localStorage.removietem
?100%。在我下面的回答中使用确切的页面会产生我预期的行为:当我重新加载页面时,两个变量仍然存在,当我关闭并重新打开页面时,只有本地变量仍然存在。Bizzaro@chrome,谢谢你的帮助!我可以在chrome 42.0.2311.135 m上确认问题。setItem(“X”、“V”)之前的localstorage.getItem(“X”)允许在终止所有chrome进程后检索值。如果setItem(“X”,“V”)发生在getItem(“X”)工作之前,只要不杀死所有chrome进程:在杀死所有chrome进程之后,本地存储密钥“X”丢失..我认为这是一个bug。已引发。这看起来像是DevTools中的一个bug。在您实际访问
localStorage
或任何属性之前,存储条目不会显示在资源面板中。如果您只是执行
localStorage在页面加载时,DevTools可以正常工作。我在console.log中显示了该值,但它仍然无法持久化。(Chrome)我处理了这类问题,并设法解决了它,但我不知道我使用的方法是否正确。也就是说,我发现在Chrome浏览器设置和高级部分有解决方案。在本节中,有一个涉及内容设置,更深入地说,在Cookies部分中,有一个项目“仅在退出浏览器之前保留本地数据”(或类似内容)。在“Permit”中,我命令“Add”,并插入了“localhost”,因为我正在本地环境中进行测试。通过这个操作,数据的持久性符合API规则。在过去的3个小时里,我一直在努力解决这个问题。你的解决方案奏效了。非常感谢。