2014-11-20 2 views
0

페이지에 dojo를 사용하여 여러 탭을 만들었으므로 페이지를 새로 고치기 (초), 매 5 초마다 가리키는 현재 탭을 새로 고침하고 싶습니다. 바이올린 http://jsfiddle.net/5yn2hLv9/4/을 찾으십시오. 페이지 새로 고침이 3 개 탭의 데이터가 페이지에 표시되는 페이지를로드 할 때 내가 원하는, 매 5 초 후에TabContainer 새로 고침

<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> 

--EDIT--

: 아래

샘플 코드입니다 내 응용 프로그램 에서처럼 각 탭에 많은 양의 데이터가 포함되어 있으며 모든 탭에서 많은 양의 데이터가 표시되면서 페이지가로드되는 동안 페이지의 모든 데이터가 표시되지 않도록해야합니다.

+0

새로 고침해야하는 이유를 말해 줄 수 있습니까? ajax 호출에서 오는 새로운 데이터가 있습니까? –

+0

@dorinaji - 데이터가 데이터베이스에서오고 최신 데이터를 표시하기 위해 화면을 새로 고침해야합니다. – user4199704

답변

0

당신은 외부 DIV 요소 (컨테이너)에 ID를 넣어해야하고 다음으로 선택한 탭을 얻을 수있을 것입니다 :

dijit.byId('id_of_outer_div').selectedChildWidget

하지만 난 당신이 경우에 확실하지 않다 특정 탭에서만 location.reload()를 사용하여 다시로드 할 수 있습니다.

+0

페이지가 새로 고침 될 때마다 5 초마다 3 개의 탭 데이터가 모두 페이지에 표시되고 페이지가로드됩니다. 응용 프로그램 에서처럼 각 탭에 많은 양의 데이터가 포함되어 있으므로 페이지가로드되는 동안 페이지의 모든 데이터가 표시되지 않도록하고 싶습니다. ID가 모든 탭에서 표시되는 많은 데이터를 새로 고칠 때마다 @ xaris08. – user4199704

+0

만약 내가 당신을 얻었는지 모르겠지만 전체 페이지 (location.reload())를 새로 고침하고 선택된 탭만 새로 고침하고 싶다면 그것을 할 수없고 두 탭 모두를 다시로드하는 것이 합리적입니다. 그렇지 않으면 특정 탭만 다시로드하려면 각 탭을 다시로드하기 위해 탭 관련 AJAX 호출 요청 (xhrGet() 함수)을 사용할 수 있습니다. 도움이되는지 살펴보세요. http://stackoverflow.com/questions/10889319/is-there-a-working-dojo-tabcontainer-can-successfully-reload-in-a-contentpane – xaris08

1

페이지를 다시로드하지 않고 탭을로드하는 것에 대해 xaris08이 말한 내용이 사실이라면 권장하는 탭 특정 아약스를 사용해야합니다. 그렇지만 권장하지 않는 다시로드 페이지로 인해 어려움을 겪고 있는지 질문 할 수 있습니다. 아래 코드와 같은 더러운 방법을 사용하십시오.

<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); 


    }); 

탭이 렌더링하고 1 초 후가 html.set를 사용하여 DOM의 값을 주입 충분하다 매번 당신이 언젠가주는 페이지를로드 이쪽으로. 그것을 봐주세요 here

관련 문제