【发布时间】:2014-04-26 20:11:41
【问题描述】:
我正在使用 Jquery Mobile 和 PhoneGap 构建一个移动应用程序。我正在使用单页模型,其中我有类似 index.html、login.html 等的东西
我编写了一个 javascript,它始终使用 setInterval() 每 5 分钟与服务器端联系一次以获取新消息,并且在后台运行良好,而不会干扰用户正在做的事情。
我想问一下是否可以在全局范围内声明和运行这段代码,而不必在每个 html 页面中重新声明它。
注意:我在 jQuery Mobile 的链接中使用了rel="external",这会在用户导航到某个页面时导致每个页面刷新。
【问题讨论】:
-
每个文档都必须引用您运行的脚本。如果您没有将代码放在 js 文件中并使用
<sctipt type="text/javascript" src="file.js"></script>。我似乎找不到其他解决方案。 -
@Michał 确实如此,我目前正在这样做。我真正想要的是一个可以在后台运行的代码块,无论用户导航到哪个页面。
-
那恐怕是使用多页系统时唯一的解决方案了。每次页面都会重新加载,JavaScript 也会如此。
-
当您使用
rel=external导航到不同的HTML 文件时,页面将完全重新加载,因此setInterval()将重置。如果您通过 Ajax (w/orel=external) 加载页面,setInterval()将继续在后台运行。 -
是的,我需要设置 rel="external" 因为我在页面中嵌入了自定义 CSS 样式,并且没有重新加载整个页面,该样式将无法实现。
标签: javascript jquery jquery-mobile cordova