使用 jQuery 编写应用程序 - 如何存储变量?

Posted

技术标签:

【中文标题】使用 jQuery 编写应用程序 - 如何存储变量?【英文标题】:Writing an App with jQuery - how to store variables? 【发布时间】:2013-06-03 19:59:47 【问题描述】:

我猜它在网络上的某个地方,但我找不到它..

这是我的问题:

我正在使用 jQuery 和 PhoneGap 编写一个应用程序,但我遇到的问题是,当我在脚本标签中使用 window.location.href 时,我的全局变量会被重置。我试图将它们存储在 html LocalStorage 中,但它甚至会重置它们。

绑定在任何文件中的我的 javascript 文件如下所示:

var x;
var y;
var z;
...
function ...
   x = 5;
function ...
   alert(x);

每个新页面都有一个额外的 .html 文件。当我使用全局变量导航时没有重置。但我想要一个条件 href,为此我认为我需要 JavaScript 中的 window.location.href。

所以任何人都可以告诉我一种方法来避免我的变量被 window.location.href 重置,或者如何实现不重置我的全局变量的条件 href?

这几天我都遇到了这个问题,如果它在网络上的某个地方,我再次感到抱歉。

谢谢!!

【问题讨论】:

尝试使用cookies来存储变量 【参考方案1】:

您正在重新加载 JavaScript,重置变量。一些解决方案:

您应该使用 ajax 来更改您的内容。 使用cookies。 (不推荐) 将变量作为参数存储在 url 中。 (不漂亮)

【讨论】:

这适用于大多数浏览器吗?尤其是安卓和ios?我现在就试试这个,因为 sessionStorage 不起作用。 .( AJAX 适用于我知道的所有浏览器。 JQuery ajax 很简单:$('#target').load(src);【参考方案2】:

我会考虑使用 sessionStorage 跨不同页面存储和恢复您的变量值。如果失败,请使用 cookie。但是,由于您的目标似乎是智能手机,所以这应该不是问题。

https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Storage

【讨论】:

不起作用。我尝试了一些东西,问题是 window.location.href 加载了这个 html 文件并且没有链接到它。因此,我真的需要标头中的 JavaScript 文件,否则它不会使用它。但是当我拥有它时,它会重新初始化所有变量,因此它不适用于旧变量.. 问题是您正在加载一个新页面。原始页面中的 javascript 在那里不存在。您要么需要将 javascript 添加到第二个页面,要么不加载新页面。改用 AJAX 从第二页动态加载信息并在第一页显示。 是的,这实际上是问题所在。 :/ 好吧,我正试图进入 AJAX。但我只找到无条件的hrefs.. 我是否必须将所有页面放在一个 html 文件中才能使用 AJAX 进行 href? 我建议你查阅一些关于使用 jQuery 的 AJAX 的教程。这很简单。这是一个从页面加载 html 并将其放入某个 div 的快速示例:$.ajax( url:"pagetwo.html", cache:false, success:function(content) $("#somedivid").html(content); );

以上是关于使用 jQuery 编写应用程序 - 如何存储变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery AJAX $.post 存储 PHP $_SESSION 变量?

如何在 jQuery 点击函数中存储局部变量?

如何将 jQuery 选择器存储在变量中?

如何使用 jQuery/AJAX 访问 views.py 中的变量?

当 POST 是唯一方法时,如何使用 jQuery 从标头中检索 csrf 令牌?

如何编写存储过程