如何使用Javascript在两个页面之间传递数据

How to pass data between two pages with Javascript

本文关键字:之间 数据 两个 Javascript 何使用      更新时间:2023-09-26

我已经在SO上看到了与此类似的其他几个问题,但没有一个是我真正想要的,所以希望这不会被视为重复。

我有一个用jQuery Mobile构建的客户端Javascript/HTML5 Web应用程序。 我发现性能可能非常慢,有人建议 DOM 中有太多事情可能是原因。 我的应用程序确实有几个data-role="page"div,可以在单个html页面中增加DOM。 我正在尝试将我的应用程序拆分为多个 html 页面以提高性能,但我希望用户体验是无缝的。 这意味着我需要在我的应用程序中的物理 html 页面之间传递 Javascript 变量。

到目前为止,我在搜索中看到了以下选项:

  1. 在转到其他页面的 url 中使用查询字符串。 - 我不确定我是否希望我的用户在地址栏中看到一个相当大的令人困惑的查询字符串。
  2. 使用服务器端代码(如 ASP.Net 或 PHP)来处理回发数据。 - 我对此持开放态度,但我不确定它将如何工作。 我不想将我的 html 页面转换为 aspx 或 php 文件。 我是否可以有一个简单的服务器端脚本,可以将回发数据嵌入到常规 html 文件中?
  3. 使用
  4. Cookie 存储相关数据。 - 我也不确定这一点,因为我的大多数用户都在可能限制 cookie 使用的企业环境中。

还有其他方法可以做到这一点吗? 在这一点上,我倾向于某种服务器端处理。 如果这是最好的方法,有人可以指出我正确的方向来弄清楚如何做到这一点吗?

尝试本地存储或会话存储 http://www.w3schools.com/html/html5_webstorage.asp

如果您符合HTML5标准,本地存储将是一种选择。它将存储值,减少对任何服务器的调用,直到您真正准备好更新所有信息,即使浏览器关闭,信息也会存在;像这样使用会话存储或 JS

window.onbeforeunload = function() {
  localStorage.removeItem(key);
  return '';
};

如果您需要在关闭浏览器时清除敏感信息的本地存储。

请记住,您传递到本地存储的任何内容都将显示为字符串,因此当您从存储中获取信息时,您需要将其转换为适当的数据类型。

您还将被限制存储 5 兆的数据(我相信这是标准),但如果您的表单需要这么多信息,您可能会遇到其他问题。 :)

查看这些以获取更多信息

http://msdn.microsoft.com/en-us/library/bg142799(v=vs.85).aspx

http://dev.w3.org/html5/webstorage/

如果您只关心 GET 是用户看到冗长的查询字符串,则可以使用 POST 而不是 GET。

使用 localStorage。 localStorage 允许您在浏览器中存储值。