jquery-mobile之jQuery Mobile 在来回浏览时何时重新加载页面
我尽量避免在我的移动网络应用程序中来回浏览时重新加载。 JQuery Mobile 似乎是为此而设计的,但我在驯服这种行为时遇到了麻烦。
基本上,我有两个页面( page1
和 page2
)。 page1
有一个链接到 page2
反之亦然。第一次加载时,两个页面 (i) 在 ajax 中加载数据和 (ii) 相应地更改 DOM 结构。我使用全局 var
以避免重新加载数据,效果很好。
假设page1
(resp page2
) 有一个名为 dom10
的 DOM 结构(resp dom20
)在 html 和 dom11
(resp dom21
) 加载所有内容后。
这是我的问题:
我加载
page1
,数据已加载,DOM 已从dom10
更改为至dom11
然后我点击
<a href="page2">click</a>
,page2
加载后,检索数据并将 DOM 从dom20
更改为至dom21
.到目前为止一切顺利。然后我点击
<a href="page1">click</a>
回去。该页面与我离开时一样dom11
.太好了,没有GET
完全调用。我终于点击了
<a href="page2">click</a>
又一次,这就是它的痛处。页面再次加载(调用GET
),未检索数据但 dom 设置回dom20
我可以继续点击来回,我总是得到相同的行为。每当我点击 page1
每当我点击 page2
时,我都会得到我离开时的 DOM。有一个GET
调用并重新加载 DOM。
所以这是我的问题,有没有办法防止重新加载已在 jQuery Mobile 中加载的页面?
我可以想出一些变通方法来让我的 DOM 随心所欲,但我希望避免不必要的调用减慢我的应用程序。
想玩的可以试试there .
非常感谢您的帮助!
PS:令人惊讶的是,我在 Firefox 和 Chrome 上没有得到相同的行为......恐怕事情并不那么简单。
请您参考如下方法:
默认情况下,jQM 总是对页面发出 AJAX 请求,即使您之前已经访问过它。如果您设置 $.mobile.page.prototype.options.domCache = true;
那么 jQM 不会重新加载页面。
如果是这样,如果您需要刷新页面,则需要在调用 $.mobile.changePage 时将 reloadPage
设置为 true - 否则页面将过时。
但请注意,如果您这样做,您的所有页面都将附加到 DOM,从而导致影响性能的庞大 DOM - 您需要在 JS 中正确管理它,这是一个不同的主题。但是想象一下,当您的 DOM 中有 20 个页面时,执行一个开放式的 $('.myClass') 搜索。我在我写的旧答案中有更多详细信息:Jquerymobile - $.mobile.changepage
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。