Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript localStorage未在两个页面之间持久存储_Javascript_Dom_Local Storage - Fatal编程技术网

Javascript localStorage未在两个页面之间持久存储

Javascript localStorage未在两个页面之间持久存储,javascript,dom,local-storage,Javascript,Dom,Local Storage,我正在开发一个应用程序,在某一点上,我需要在多个页面之间存储需要持久化的信息,更可能的是,它只有两个页面。 信息量从几个字节到大约15KB不等(永远不会超过20KB)。我真的无法事先准确预测会有多少 为此,我决定使用本地存储 现在我只在本地主机上工作:8080 目前,这些页面只有通用名称:pageA.php和pageB.php 这些页面位于域的根目录上。即 http://localhost:8080/pageA.php http://localhost:8080/pageB.php 在某些时

我正在开发一个应用程序,在某一点上,我需要在多个页面之间存储需要持久化的信息,更可能的是,它只有两个页面。 信息量从几个字节到大约15KB不等(永远不会超过20KB)。我真的无法事先准确预测会有多少

为此,我决定使用本地存储

现在我只在本地主机上工作:8080

目前,这些页面只有通用名称:pageA.php和pageB.php

这些页面位于域的根目录上。即

http://localhost:8080/pageA.php
http://localhost:8080/pageB.php

在某些时候,我将数据存储在localStorage的pageA.php上(我确实使用setItem()方法)

当用户移动到pageB.php时,pageB.php的脚本会尝试获取存储在pageA.php中的数据。
问题是getItem()在pageB.php上总是返回null

我确实检查了我使用的钥匙,它们是一样的,所以应该没有问题

我已经检查过了,只要url不变,存储的数据就会在页面加载之间保持不变

我做错了什么


注意:仅在Firefox 19和chrome 24上进行了测试,这里的问题是我使用的编辑器已更改为区分大小写进行搜索。
当我更改用于键的字符串时,由于区分大小写,替换者没有匹配所有字符串。
我通过搜索和调整每个键来解决这个问题,这样所有键都具有相同大小写的相同字符,而不是不考虑大小写的相同字符。

最后,这只是缺乏关注。正如所料,javascript中的字符串是区分大小写的,这也适用于localStorage的键,sessionStorage可能正在向合唱团宣讲,但为了以防万一,这对您有所帮助:在Chrome的开发人员工具中(我想还有FireBug等价物),您可以监视本地存储中的内容。右键单击页面,选择“检查元素”,然后在“资源”选项卡下,您将在资源树中找到“本地存储”。谢谢。这让我发现我做错了什么。我想知道为什么我忘记了chrome上的这个功能:D。我的快乐伙伴。差点没写出来,以防你因为我指出流血的地方而激怒我!;-)你介意用你发现的任何问题/解决方案来自我回答你的问题吗?这样这篇文章将来可能会帮助别人。。。好啊你确实花了点时间写下了那条评论,所以。。。是 啊好的。我想你现在可以接受你自己的答案了…;-)+哦!我建议您不要对密钥使用文字字符串,而是对密钥使用(psuedo)常量,这样它们就只被定义一次,从而避免了由输入错误或大小写引起的故障。例如
var LSK_SOMEKEYNAME=“SOMEKEYNAME”(LSK=本地存储密钥)。这种方法应该真正适用于代码中任何在代码中使用文字常量(而不仅仅是字符串文字)的地方;它有助于避免此问题,并为代码增加了意义(例如
lineNum=lineNum+2
变成
lineNum=lineNum+LINE\u偏移量\u由于\u空白\u行
)。