首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery移动临时页面缓存

问jQuery移动临时页面缓存
EN

Stack Overflow用户
提问于 2012-07-11 04:23:22
回答 1查看 1.9K关注 0票数 1

根据jQuery docs调用

代码语言:javascript
复制
pageContainerElement.page({ domCache: true });

将以编程方式缓存特定页。但是,正如此github issue正确指出的那样,如果在pagecreate事件之后调用,这将不起作用。

从我的应用程序的主页,用户可以转到另一个页面,在那里有一个表单,他们可以在其中输入信息。此表单上有一个用于弹出模式的按钮,用户可以从中选择某些标签。当此模式关闭并且用户返回到表单时,它将被重置,因为页面已被删除并重新添加。

我可以做的一件事是将页面与表单一起缓存,这样数据就不会被清除。以编程方式完成此操作的唯一方法是

代码语言:javascript
复制
function cachePage() { $('#tags').closest('div[data-role=page]').page({ domCache: true }); }
$(document).on('pagebeforecreate', cachePage);

假设#tag只是我想要缓存的页面上的一个元素。但是,我现在不能取消对页面的缓存,并让jQM清理它。

我想知道我是否正确地处理了这个问题,如果是的话,如何处理这个页面缓存和禁用。如果我没有正确地处理它,我如何才能使它保留我的表单,并且我仍然可以从模式弹出窗口或附加页面中获取表单的信息?

编辑

我最近发现的一件事是,jQM将在DOM中保留一个“根”页面,后面是它加载到表面上的任何其他页面。如果我将data-ajax='false'添加到所有转到表单的链接,它们应该可以安全地与在它们上调用的任何模态一起使用。此外,对它们的提交可以使用相同的data-ajax='false'重定向到另一个页面,而不是标题栏的后退按钮返回到表单。

与缓存表单页面或在JavaScript中存储表单数据并在加载表单时重新填充表单相比,这是一种更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-11 04:31:34

如果您有一个需要在DOM中持久化的伪页面,那么可以将data-dom-cache="true"属性添加到伪页面元素中。文档:http://jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html

如果要删除已缓存的DOM中的伪页,请使用.remove()

代码语言:javascript
复制
$('#some-page').remove();

除元素本身外,还将删除与元素关联的所有绑定事件和jQuery数据。要删除元素而不删除数据和事件,请改用.detach()。

来源:

一旦从DOM中删除了伪页面,jQuery移动版将无法找到它,并在下次导航到伪页面时从外部文档中获取一个新版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11421339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档