0

我有一个网站,由一堆单页模板 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

4

1 回答 1

0

除非您的初始页面使用链接标签data-prefetch上的属性直接链接到所有其他页面,<a>否则这些页面不会被预取和缓存。我之所以这么说,是因为您的问题暗示您的页面存在一些不支持的链接。您还可以通过 API 加载和缓存它们。

$.mobile.loadPage( pageUrl, { showLoadMsg: false } );

您是否能够实际检查移动 Android 设备上的 DOM?

是否有可能根据内存限制从 DOM 中刷新页面?我不知道 jQM 文档中关于这种情况的任何细节,但在某些时候你会填充缓存。

于 2013-02-12T22:27:12.260 回答