Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 跨页面重新加载在js中存储值_Javascript_Web Storage - Fatal编程技术网

Javascript 跨页面重新加载在js中存储值

Javascript 跨页面重新加载在js中存储值,javascript,web-storage,Javascript,Web Storage,我在这里寻找答案,发现它可以通过网络存储和cookie来实现。然而,我也看到了这个有趣的帖子: 它说: “Chrome 42引入了一种先进的技术来存储编译代码的本地副本,这样当用户返回页面时,下载、解析和编译步骤都可以跳过。在所有页面加载过程中,Chrome可以避免大约40%的编译时间,并在移动设备上节省宝贵的电池。” 这是否意味着变量的值将在页面重新加载时保持不变? 例如,如果我将用户选择的颜色存储在一个变量中,那么在加载另一个页面(位于同一域)后,该值在该变量中是否可用 注:我不能在那里发

我在这里寻找答案,发现它可以通过网络存储和cookie来实现。然而,我也看到了这个有趣的帖子:

它说: “Chrome 42引入了一种先进的技术来存储编译代码的本地副本,这样当用户返回页面时,下载、解析和编译步骤都可以跳过。在所有页面加载过程中,Chrome可以避免大约40%的编译时间,并在移动设备上节省宝贵的电池。”

这是否意味着变量的值将在页面重新加载时保持不变? 例如,如果我将用户选择的颜色存储在一个变量中,那么在加载另一个页面(位于同一域)后,该值在该变量中是否可用


注:我不能在那里发表评论,因为我是一个新手,没有足够的声誉来评论答案。

不,这并不意味着变量被存储,或者HTML突然有状态,它只意味着Chrome在内部存储解析的脚本,这样它们就不必再被下载和解析


这只是一个内部优化,目的是让Chrome更快,而不是让你可以访问的东西,你仍然需要持久存储,比如cookies、本地存储或服务器。

谢谢你的回答。还有几个问题:解析是否与JS呈现/操作DOM树相同?如果是,那么浏览器如何为不同的页面使用相同的预解析JS?(每次加载页面时都会重建DOM)如果不是,请解释一下差异b/w解析和呈现,浏览器中存储的变量值在哪里?它是附加到DOM树还是浏览器为JS保留了一个单独的内存区域?(这里我不是指存储HTML元素的属性,比如颜色,它可能会被JS更改,并且是DOM树的一部分)这是非常技术性的,但是解析脚本与渲染不同,浏览器通常会有一个javascript引擎和一个一起工作的渲染引擎。Chrome究竟是如何在内部完成这些事情的,这让我很难理解,但它存储了脚本,可能还存储了一些数据,以了解解析的结果,因此它不必再次执行。在第一次页面加载时,脚本解析通常是相同的,DOM是相同的,等等。变量存储在内存中,由于HTML是无状态的,所以在新页面加载时释放内存。因此,当重新加载页面或重定向到另一个页面时,javascript所做的一切都会丢失,没有状态。Cookie、本地存储等是跨页面加载保存数据的唯一方法。