jquery ui tabs缓存难题

时间:2010-09-04 03:31:47

标签: jquery-ui caching

我正在为我的雇主开发一个网络应用程序,我正在使用一些jquery。我相当擅长PHP,但在jquery中丢失了。我的问题如下:

我有一个工作标签页,可以在首次加载时加载一个怪物PHP页面。我需要确保只在调用页面时才加载此特定选项卡(仅限第一次)。我已经缓存了初始选项卡,如果您单击另一个选项卡,一切都很好。问题是,当您从选项卡中单击链接时,它会重新加载怪物PHP页面。这是代码:

       $(document).ready(function() {
    $("#frame").hide();
    $("ASA").tabs({ cache: true });
    $("#tabs").tabs();
});


function CH(ids){
        $("#tabs").tabs("select" , "#CH");
        $('#CH').load('test.php?id='+ids);
        cache : true
}

function onIFrameLoad() {
   $("#loader").hide('slow');
     $('#frame').slideDown('slow');
 }

功能CH是我遇到麻烦的地方(我猜)。我有缓存:真的在那里,但它是在黑暗中拍摄。我想要缓存的唯一选项卡(此时)是主选项卡(ASA)。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

使用缓存的正确语法是

$( ".selector" ).tabs({ cache: true });

但是,只有在远程加载每个选项卡(即ajax)时,这才有效。如果您使用文档提供的原始HTML结构,则没有理由这样做,因为所有选项卡的所有内容都是最初加载的。你也不能(据我所知)为各个标签打开缓存。

我们真正需要看到的是您为此获得的HTML结构。此外,选择器$("ASA").tabs({ cache: true });可能无法正常工作,因为ASA不是有效的HTML元素。

答案 1 :(得分:0)

好的......所以这是一个完整的黑客/解决方法,但我有一个解决方案。如果有人可以指导我,我很乐意听到这样做的正确方法,但这就是我所做的:

在每个标签中,我预先加载一个空白的iframe 我的链接现在都指向iframe而不是函数。 每个iframe都会调用一个函数来从父级中“选择”其选项卡。

结果是加载后显示选项卡,主选项卡永远不会刷新。

同样,我知道这是一个黑客,如果你有更好的方法,请告诉我。