我的网站由一堆单页模板jQuery Mobile页面组成,这些页面使用预取和缓存相互链接。所有页面都存在于DOM中(在预取之后)。
这在我的桌面浏览器上运行正常。但是,当我使用我的HTC EVO 3D Android手机(默认浏览器或Opera浏览器)浏览我的网站时,在页面之间切换就像我实际上要进入外部页面一样。换句话说,浏览器的地址栏暂时出现,然后页面变为白色,然后加载新页面,然后地址栏就会消失。
我希望这种行为完全符合多页面模板的行为。例如,如果您在jQuery Mobile文档中浏览多页面模板,则可以非常顺利地从一个页面切换到另一个页面。浏览器地址工具栏不会弹出,并且页面之间没有白色闪烁。但是,如果您浏览“持久工具栏”示例(使用预取来加载示例中的所有页面),您将看到我的网站遇到的相同行为。将出现浏览器的地址栏,页面将变为白色,下一页将呈现,然后地址栏将消失。
那么如何让我的预取页面像多页面模板一样,而不必重写我的网站以使用多页面模板?
供参考,以下是jQuery Mobile持久工具栏演示和多页面演示,我认为应该完全相同(关于URL地址栏出现):
http://jquerymobile.com/demos/1.3.0-rc.1/docs/toolbars/footer-persist-a.html
http://jquerymobile.com/demos/1.3.0-rc.1/docs/pages/multipage-template.html
答案 0 :(得分:0)
除非您的初始页面直接链接到data-prefetch
链接标记上包含<a>
属性的所有其他网页,否则这些网页将不会被预取和缓存。我说明了这一点,因为你的问题意味着你的网页存在一些不受支持的链接。您也可以加载并通过API加载和缓存它们。
$.mobile.loadPage( pageUrl, { showLoadMsg: false } );
您是否能够在移动Android设备上实际检查DOM?
是否有可能基于内存约束从DOM刷新页面?我不知道jQM文档中有关此方案的任何细节,但在某些时候您将填充缓存。