Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery';s.data()缓存是否在jQuery mobile中跨页面转换持久化?_Jquery_Jquery Mobile_Cordova_Local Storage - Fatal编程技术网

jQuery';s.data()缓存是否在jQuery mobile中跨页面转换持久化?

jQuery';s.data()缓存是否在jQuery mobile中跨页面转换持久化?,jquery,jquery-mobile,cordova,local-storage,Jquery,Jquery Mobile,Cordova,Local Storage,我正在读jQuery.data()。在此之前,我推测它可能通过将'data-*'属性分配给页面元素来工作;实际上是指向$('#foo').attr('data-foobar','bar')的快捷方式 (1)想象一下它确实是这样工作的,尽管看起来不是这样,但是您从一个jQuery移动页面切换到另一个,然后再切换回来,'data-*'属性是否仍然附加到元素,或者jQM是否有效地从下载的HTML重新加载 然而,在参考文献中,页面上的第一条评论指出: 数据不存储在元素上。它实际上存储在$.cache-“

我正在读jQuery
.data()
。在此之前,我推测它可能通过将
'data-*'
属性分配给页面元素来工作;实际上是指向
$('#foo').attr('data-foobar','bar')
的快捷方式

(1)想象一下它确实是这样工作的,尽管看起来不是这样,但是您从一个jQuery移动页面切换到另一个,然后再切换回来,
'data-*'
属性是否仍然附加到元素,或者jQM是否有效地从下载的HTML重新加载

然而,在参考文献中,页面上的第一条评论指出:

数据不存储在元素上。它实际上存储在
$.cache
-“Alex”中

这是真的吗

(3)这种情况在jQM页面转换中持续存在吗?如果我点击第2页并询问
$('#bar').data('foo')
,其中
#bar
是第1页上的一个div,会发生什么

您认为在jQM应用程序的上下文中,最好使用
.data('*','*')
而不是
.attr('data-*','*')
,将所有内容放在一个HTML文件中,在只有
localStorage
可用于额外应用程序存储的情况下运行在Cordova/PhoneGap之上

具体的,对。有点肛门,是的


期待您的回答,是。

如果您使用多页模板,其中在单个文档中有多个
数据role=“page”
元素,则数据将在转换过程中保持不变。这是因为所有的页面总是在DOM中,并且它们永远不会从DOM中删除

现在,当您通过AJAX拉入一个伪页面时,情况就不同了。当您链接到远程页面时,jquerymobile通过AJAX抓取该页面,然后将其转换为视图。默认情况下,当您离开该页时,它将从DOM中删除以节省内存。当页面被删除时,其数据也会被删除。您可以通过在任何外部
data role=“page”
元素上设置
data cache=“true”
属性来停止此行为


文档:

您可以使用
ui.prevPage
方法访问上一页中的数据。你应该做的是在你最喜欢的调试器中设置一个断点。然后检查
ui对象
,查看您可以访问的所有参数。非常好:-)谢谢!对(2)或(3)有什么想法吗?我不熟悉
$缓存
,但我确实经常使用
$数据
,并且它使用DOM元素作为引用,因此如果删除了该DOM元素,那么引用和数据也是如此。由于数据与DOM元素相关,如果该DOM元素存在,那么数据也会存在,但一旦删除DOM元素,数据就会丢失
data role=“page”
默认情况下,通过AJAX引入DOM的元素在您离开它们时会被删除,这意味着它们的数据也会丢失。接受这一点。一如既往地感谢您的帮助贾斯珀:-)