我正在使用jQuery Mobile在移动网站上工作。 我知道该框架将页面放在缓存中,以便它可以在页面之间进行良好的过渡,减少数据传输等。 但就我而言,这很无聊,因为我认为它无法在页面中执行某些JavaScript。 我会解释:
此页面显示带有日期字段的表单。 当焦点位于该字段上时,我使用mobiscroll使日期选择器出现。
当我提交表单时,如果出现验证错误(我使用codeigniter),服务器将重定向到表单(重新填充字段等。),然后日期选择器将不再起作用。 如果我从JS控制台启动它,它将再次起作用,这使我认为回到表单页面时未重新执行JS代码。
我添加了data-ajax="false"
作为表单的属性以使其正常工作(我失去了漂亮的过渡效果,但我不在乎)。 那是最好的解决方案吗?
然后,我寻找了另一种确定的方式,因为缓存机制在其他页面中造成了问题。 所以我发现:
$(document).live("mobileinit", function() {
$.mobile.ajaxLinksEnabled = false;
});
这应该是完全停用缓存,但事实并非如此。 我尝试删除一些data-ajax="false"
,然后遇到与以前相同的问题。
那么页面缓存机制有什么问题? 为什么$.mobile.ajaxLinksEnabled = false;
工作?
谢谢!