我在php文件中使用dojo标签。当php文件首次写入浏览器时,标签会显示为常规div。然后一秒钟后,它们很好地固定在制表格中。自从我研究了dojo以来它已经有一段时间了,当时它被编写为使用1.6使用链接到在线版本的dojo。
是否有某种原因会发生这种情况。有没有准备好的东西或没有先加载的东西?
php代码回显了这个html:
<div dojoType='dijit.layout.TabContainer'><div dojoType='dijit.layout.ContentPane' title='Words' selected='true'>some html</div></div>...etc
我在php文件的标题中有这个javascript,首先回显这个html。
<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 :(得分:0)
我刚刚遇到了完全相同的问题,并提出了以下解决方法。在我的布局的<head>
部分(layout.phtml - 我正在使用Zend Framework 1.12)中,我添加了以下JavaScript函数
<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>
并使用<body>
属性和几个onLoad
s
<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>
所以我看到“loading ...”文本,直到Dojo内容完全呈现,然后“loading ...”消息消失,表单出现。
我在一台互联网速度相当慢的远程服务器上进行了测试,看起来很有效。但是,我刚刚开始使用Dojo,所以如果有更好的方法来解决这个问题,我将非常感谢您的建议。