如何使用Javascript在两个页面之间传递数据
How to pass data between two pages with Javascript
我已经在SO上看到了与此类似的其他几个问题,但没有一个是我真正想要的,所以希望这不会被视为重复。
我有一个用jQuery Mobile构建的客户端Javascript/HTML5 Web应用程序。 我发现性能可能非常慢,有人建议 DOM 中有太多事情可能是原因。 我的应用程序确实有几个data-role="page"
div,可以在单个html页面中增加DOM。 我正在尝试将我的应用程序拆分为多个 html 页面以提高性能,但我希望用户体验是无缝的。 这意味着我需要在我的应用程序中的物理 html 页面之间传递 Javascript 变量。
到目前为止,我在搜索中看到了以下选项:
- 在转到其他页面的 url 中使用查询字符串。 - 我不确定我是否希望我的用户在地址栏中看到一个相当大的令人困惑的查询字符串。
- 使用服务器端代码(如 ASP.Net 或 PHP)来处理回发数据。 - 我对此持开放态度,但我不确定它将如何工作。 我不想将我的 html 页面转换为 aspx 或 php 文件。 我是否可以有一个简单的服务器端脚本,可以将回发数据嵌入到常规 html 文件中? 使用
- 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 允许您在浏览器中存储值。
- 函数参数中的数据与指定变量之间的任何性能差异
- 在控制器和数据对象之间同步数据
- 使用服务(AngularJS)在控制器之间共享数据
- AngularJS中的页面之间共享数据返回空
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- Mongoose查询在两个日期时间之间提取数据
- 使用Angularjs在两个不同页面的控制器之间共享数据
- 使用JavaScript在网页之间进行数据传输
- 如何在网页之间存储数据
- 如何在Windows Phone 8.1应用程序中在C#和Javascript之间传递数据或通信
- 2ng控制器,并且需要在控制器之间共享数据
- 在控制器angular js之间共享数据
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 基本html页面和弹出窗口之间的数据交换
- Meteor-在助手、事件和模板之间传递数据
- 如何在 Angularjs 中的交叉模块之间共享数据
- 在OnsenUI+AngularJS+PhoneGap中的控制器之间传递数据
- 最小化在javascript中客户端/服务器之间发送的数据
- 如果我在页面之间移动,Jquery 数据表行事件会卡住
- JavaScript:显示客户端和服务器之间数据传输的度量