如何在多页HTML5应用程序中保持JavaScript对象的活动状态

how to keep javascript objects alive in a multi-page html5 app?

本文关键字:JavaScript 对象 活动状态 应用程序 HTML5      更新时间:2023-09-26

如何在多页面应用程序中保持javascript对象的活动(独立于浏览器)?

例如,我知道我可以编写带有背景页面的Chrome扩展程序来解决它,但是有没有独立于浏览器的方法呢?

一种方法是让你的javascript代码加载页面(通过'ajax'调用),然后替换HTML的正文或部分内容。这样,就浏览器而言,您仍然在同一个"页面"上。您必须确保网站中的所有链接都是无效的,并且它们实际上触发了javascript函数,而不是导致浏览器页面加载。例如,这就是Facebook管理其网站点击的方式。见 https://stackoverflow.com/a/7425870/562906

当您使用 html5 时,您可以使用本地存储来存储对象的 JSON 表示形式:

var json_text = JSON.stringify(your_object, null, 2);
localStorage.setItem("someKey", json_text);

然后在另一页上检索您的项目:

var your_object = JSON.parse(localStorage.getItem("someKey"));

要使用JSON.stringify您可能需要 JSON-js - 如果浏览器使用 html5,则很可能不需要第三方脚本。

您可以使用 Cookie 在页面请求之间传递数据。除此之外,你总是需要从头开始重建你的对象。