jQuery Mobile多页面模板缓存

时间:2014-05-28 12:36:03

标签: jquery html jquery-mobile caching

我有一个使用jQuery Mobile构建的应用程序,其中所有页面都在一个HTML文件中。当我导航到某个页面,填写一个表单然后离开它时,我希望下次在该页面上填写的表单数据。我的问题是,这是一个缓存问题吗?如果是这样,我该如何预防呢?我尝试过这样的事情:

pageContainerElement.page({ domCache: false });

$(document).bind("mobileinit", function(){
    $.mobile.page.prototype.options.domCache = false;
});

但每当我回到页面时,数据仍然存在

1 个答案:

答案 0 :(得分:3)

您遇到的所有事情都是jQuery Mobile打算如何运作的。您已阅读有关缓存和预取的文档,但同时您缺少更大的图片,主要是因为您没有阅读所有内容。

使用jQuery时,只有在使用多HTML模板时,缓存才有意义。让我们来看看你目前的状态。您正在使用多页面模板,其中每个页面都是单个HTML页面的一部分。在这种情况下,初始HTML文件已完全加载到DOM中,它将保留在那里直到刷新页面或直到您使用 rel =" external" 打开一些后续HTML文件(其中等于整页重启。

在任何其他情况下,初始HTML页面将永远保留DOM,您无法阻止它。基本上,如果它们是初始HTML文件的一部分,则无法删除加载到DOM中的页面。当然你可以强行删除它们,但是应用程序会遇到历史导航问题,我不想建议这种情况。

您有两种解决方案:

  1. 将该特定页面移动到其他HTML文件。在这种情况下,当您从该特定页面转换到其他页面时,它将从DOM中删除。

  2. 在pagebeforechange页面事件期间清理以前的表单数据