jQuery UI Tabs Caching v1.10.3

1 jquery jquery-ui jquery-ui-tabs

  • jQuery:v 1.9.1
  • jQuery UI:v 1.10.3
  • 浏览器:Internet Explorer 10.0.920

我正在使用jQuery UI选项卡来显示数据组.使用AJAX检索每个选项卡的内容.标签内容无法缓存.在v 1.10之前,我们使用Tabs cache属性和ajaxOptions cache属性来控制缓存.一切都很酷.

随着升级到1.10,这两个参数已被删除.可以使用beforeLoad事件来实现该功能.所以这是新的标签代码......

$(function () {
    $("#tripYears").tabs({ 
        active: 0,
        beforeLoad: function( event, ui ) {
            ui.ajaxSettings.cache = false;
        } 
    });
});
Run Code Online (Sandbox Code Playgroud)

这似乎适用于IE以外的所有浏览器.我已经使用IE版本8和10进行了测试.Chrome,Firefox,Opera和Safari根本不会缓存选项卡数据.希望有人能指出我正确的方向.

phi*_*ilw 6

在加载默认的Ajax选项卡时,每次切换回选项卡时都会重新加载Ajax."缓存"参数是为了防止这种情况,但它现在已被弃用,但是当jQueryUI指出你可以使用beforeLoad滚动自己.

您似乎试图让浏览器缓存Ajax本身.但是,选项卡的内容已经存在于DOM中,因此当您返回到先前加载的选项卡时,实际上您根本不需要发出Ajax请求.

你只想阻止jQuery重新加载该标签的内容.所以这样的事情会阻止:

$("#tabs").tabs({
   beforeLoad: function (event, ui) {
        if ($(ui.panel).html()) {    // If content already there...
            event.preventDefault();      // ...don't load it again.
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这完全在jQueryUi/jQuery中,因此不依赖于任何浏览器Ajaxy的东西.