data-reload

主要针对Ajax请求。默认情况下,Mobilebone会缓存所有的Ajax请求,也就是第二次点击同样地址的时候,不是去重新拉数据,而是直接显示之前已经加载的页面。但是,如果你希望请求的页面不被缓存(每次都重新加载页面),则就需要使用这里的data-reload参数。

目前有两种使用场景:

  1. url完整地址重加载data-reload/data-reload="true".
  2. 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冲突,事件重复绑定等问题。