jQuery Mobile页面丢失了JavaScript文件

嘿家伙有一个真正的问题与jQuery Mobile,我试图修复但我失败了:-(我有一个导航来浏览我的应用程序,如果我点击一个链接与一个网站,其中有一个.js文件用于执行某些function,.js文件丢失。如果我看看firebug,我在my -code的-section中看不到我指定的“get-marker-id.js”。如果我刷新页面,.js文件出现,一切都很好,所有function都找到并完美地工作。

作为一种解决方法,我发现为了给导航的标签一个rel=external属性解决了这个问题,因为网站完全加载而不是来自ajax调用。

现在我想知道我是否可以通过更好的解决方法解决问题? 因为如果我使用"rel=external" ,移动版Safari会打开一个新标签,如果我将页面保存到我的主屏幕,这就是我的客户不想要的=(。我非常感谢帮助:-)

如果我们假设我们从jquery mobile的简单单页模板开始,那么就会遗漏一些关键信息。 如果您想拥有全局可用的函数和变量并且能够更改框架的默认值,则需要在jquery.js和jquerymobile.js之间添加自定义脚本,如同在其全局配置页面上显示的那样 。

  ...    ...  

当您使用内置的基于ajax的导航从一个页面转到下一个页面时,custom-scripting.js中的所有内容仍然可供您使用,甚至可以用于在页面进入时操纵页面。

但是,如果您将脚本放在

,只要该页面到位,您就可以执行该操作。 导航到另一个页面后,该初始页面将从DOM中删除,从而删除您的脚本。 因此,您需要在每个页面上调用脚本或将其放入custom-script.js。 使用全局脚本将是一个更高性能的选项,因为移动中的http请求是导致大多数减速的原因。

如果您链接到.js文件位于您正在加载的页面中的jquery-mobile“role-page”元素之外,则在通过ajax加载页面时将不会对其进行解析。 我不确定“role-page”元素中的链接,但我知道内联脚本会被解析。 尝试在页面元素内移动脚本。

我在这里看到两件事情,无法确定什么对移动应用更好?

1)将custom.js放在index.html的head部分的jquery和jquerymobile之间。

  • 这样你就会有一个更大的.js文件,其中包含所有页面触发器(pageshow,pageinit ..),这个文件只会被加载一次 (更少的http请求)

  • 我遇到的问题:当您在某个页面的某个页面上单击应用程序中间的浏览器重新加载按钮时,位于您的custom.js中的动态内容(如ajax等)将无法加载。 结果:空白页面。 (对于单页jqm应用中的页面,书签也相同)

2)包括特定的自定义编码页面 – 在data-role = page div内的单页模板中的每个JQM页面上。

  • 我现在假设当重新加载浏览器按钮时,代码也会重新加载(它就在那里),但页面也会更大。

我的问题是:如何获得像1)中的解决方案,但然后再次支持页面重新加载