data-reload
主要针对Ajax请求。默认情况下,Mobilebone会缓存所有的Ajax请求,也就是第二次点击同样地址的时候,不是去重新拉数据,而是直接显示之前已经加载的页面。但是,如果你希望请求的页面不被缓存(每次都重新加载页面),则就需要使用这里的data-reload
参数。
目前有两种使用场景:
- url完整地址重加载:
data-reload
/data-reload="true"
. - url根地址重新加载:
data-reload="root"
(v2.3.2+)
分别表示什么意思呢?
url完整地址重加载
如下两个请求:
<a href="detail.php?id=112" data-reload="true">请求详情页</a>
<a href="detail.php?id=113" data-reload="true">请求详情页</a>
可以看到查询id
是不一样的。所谓“完整地址重加载”是指,只有在第二次请求的页面url
(包括查询字符串)完全匹配的时候,才移除缓存,重新加载!
比方说上面的两个请求,最后页面HTML会有两个独立的页面。
url根地址重加载
请求地址还是一样,但data-reload
值为root
:
<a href="detail.php?id=112" data-reload="root">请求详情页</a>
<a href="detail.php?id=113" data-reload="root">请求详情页</a>
这里的就是“根地址重加载”,指只要Ajax请求的url的根地址是一样的,就不会缓存,直接清除之前同源页面。
所以,这里,页面上永远最多就一个详情页对应HTML. 很多小伙伴喜欢使用全局id
绑定事件,此时,就务必需要设置data-reload="root"
, 以免id
冲突,事件重复绑定等问题。