2014-03-31 2 views
1

PHP 파일에서 도조 탭을 사용하고 있습니다. php 파일이 처음 브라우저에 쓰여지면 탭은 커다란 혼란 속에서 일반 div로 표시됩니다. 그런 다음 잠시 후 탭 형태로 잘 고정됩니다. 도장을 살펴본 이래로 꽤 오래되었습니다. 당시 작성된 당시 온라인 버전의 도장에 대한 링크를 사용하여 1.6이 사용되었습니다.dojo 탭이 먼저 일반 div로 표시되고 갑자기 탭 형식으로 바뀝니다.

이런 일이 발생하는 이유가 있습니까? 준비가되지 않았거나 먼저로드되지 않은 것이 있습니까?

PHP 코드 에코이 HTML은 :

<div dojoType='dijit.layout.TabContainer'><div dojoType='dijit.layout.ContentPane' title='Words' selected='true'>some html</div></div>...etc 

내가 처음이 HTML을 반향하는 PHP 파일의 헤더에서이 자바 스크립트가 있습니다.

<script src='http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js' djConfig='parseOnLoad: true'></script><script>dojo.require('dijit.Tooltip');dojo.require('dijit.layout.TabContainer');dojo.require('dijit.layout.ContentPane');</script><link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css'/>; 
+0

dojo 파서가 실행되기 전에 html이 어떻게 보이는지를 확인하고 태그가 달린 데이터를 위젯으로 변환합니다. 파서가 작업을 완료했다는 것을 알 때 dojo.ready까지 내용을 숨기고 싶을 수도 있습니다. – tik27

+0

나는 그것을 시도 할 것이다. 감사. 로컬이 아닌 웹에서 API를로드한다는 사실과 관련이 있다고 생각합니까? – techdog

+0

실제로 dojo.ready를 계속 점검해야한다는 것이 나에게 발생했습니다. 나는이 모든 것을 수동으로해야한다는 것에 놀랐다. – techdog

답변

0

정확히 동일한 문제가 발생하여 다음 해결 방법이 생겼습니다. 내 레이아웃 (내가 젠드 프레임 워크 1.12를 사용하고 –을 layout.phtml)의 <head> 섹션에서는 다음과 같은 자바 스크립트 함수

<script type="text/javascript" language="JavaScript"> 
    function pageLoaded() { 
     document.getElementById("body-loading").style.display = "none"; 
     document.getElementById("body-content").style.visibility = "visible"; 
     dojo.style("view-content", "visibility", "visible"); 
    } 
</script> 

을 추가하고 onLoad 속성으로 <body> 부와 <div>

몇 불통
<body class="<?php echo $dijit_theme ?>" onLoad="Javascript:pageLoaded();"> 
<div id="body-loading" style="visibility: visible;">loading...</div> 
<div id="body-content" style="visibility: hidden;"> 
<?php echo $this->layout()->content ?> 
</div> 
</body> 

Dojo 항목이 완전히 렌더링 될 때까지 "loading ..."텍스트가 표시되고 "loading ..."메시지가 사라지고 양식이 나타납니다.

나는 인터넷 연결 속도가 느린 원격 서버에서이를 테스트했으며 제대로 작동하는 것 같습니다. 그러나 Dojo를 시작하기 만하면이 문제를 해결할 더 좋은 방법이 있다면 큰 도움이됩니다.

관련 문제