TabContainer刷新

时间:2014-11-20 17:01:01

标签: javascript jquery html jsp dojo

我在页面中使用dojo创建了多个选项卡,我希望每隔 5 秒刷新页面,但只想刷新当前每隔5秒指向一次的选项卡。请找到小提琴http://jsfiddle.net/5yn2hLv9/4/

以下是示例代码:

<div dojoType="dijit.layout.TabContainer" style="width: 100%;height: 100px" tabStrip="true">
    <div dojoType="dijit.layout.ContentPane" title="First tab" selected="true">
        11
    </div>
    <div dojoType="dijit.layout.ContentPane" title="Second tab">
        2222
    </div>
    <div dojoType="dijit.layout.ContentPane" title="Last tab">
        333333
    </div>
</div>

- 编辑 -

页面刷新后每5秒钟一次,页面上会显示所有3个标签数据并加载页面,我想避免在加载时显示页面上的所有标签数据,因为在我的应用程序中每个标签包含很多数据和每次刷新时都会显示从所有选项卡中获取的大量数据。

2 个答案:

答案 0 :(得分:1)

xaris08关于在没有重新加载页面的情况下加载选项卡的说法是正确的,你应该使用我推荐的特定于标签的ajax,但是如果你遇到了我不建议你可以做的重装页面,请回答你的问题一些肮脏的方式,如下面的代码。

<div dojoType="dijit.layout.TabContainer" style="width: 100%;height: 100px" tabStrip="true">
    <div dojoType="dijit.layout.ContentPane" title="First tab" selected="true">
     <div id="content1"></div>
    </div>
    <div dojoType="dijit.layout.ContentPane" title="Second tab">
     <div id="content2"></div>
    </div>
    <div dojoType="dijit.layout.ContentPane" title="Last tab">
       <div id="content3"></div>
    </div>
</div>



require(["dijit/layout/TabContainer", "dijit/layout/ContentPane", "dojo/parser"]);

  setTimeout(function () { location.reload(true);}, 8000);

    require(["dojo/html", "dojo/dom", "dojo/on", "dojo/domReady!"],
    function(html, dom, on){
     setTimeout(function () { 
       html.set(dom.byId("content1"), "11");
       html.set(dom.byId("content2"), "22222");
       html.set(dom.byId("content3"), "33333333");
               }, 1000);


  });

这种方式每次加载页面时,你都会给标签提供一些时间,一秒就足够了,然后使用html.set在dom中注入值。看看它here

答案 1 :(得分:0)

您应该在外部div元素(容器)中放置一个id,然后您就可以使用以下选项获取选定的选项卡:

dijit.byId('id_of_outer_div').selectedChildWidget

但我不确定你是否只能使用特定标签重新加载location.reload()。