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

时间:2013-11-12 15:58:43

标签: javascript php html asp.net query-string

我在SO上看到过几个与此类似的问题,但其中没有一个是我正在寻找的,所以希望这不会被视为重复。

我有一个使用jQuery Mobile构建的客户端Javascript / HTML5 Web应用程序。我发现性能可能非常慢,并且有人认为在DOM中进行过多的操作可能是原因。我的应用程序确实有几个data-role="page" div,可以在单个html页面中填充DOM。我正在尝试将我的应用程序拆分为几个html页面以提高性能,但我希望这种体验对用户来说是无缝的。这意味着我需要在我的应用程序中的物理html页面之间传递Javascript变量。

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

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您符合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/

答案 2 :(得分:0)

如果您只关心GET,那么您可以使用POST代替GET,用户会看到冗长的查询字符串。

答案 3 :(得分:0)

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