Chrome 18.0.1025.162m Struts 1.x
这是我使用 js/mootools 创建的 div 的基本结构:
<div class="track">
<table>
<tr>
<td style="white-space:nowrap; width:1%;">
<td style="white-space:nowrap; width:1%;">
<td>
</tr>
</table>
<div>
<table>
<tr>
<td style="width:50%;">
<fieldset style="height: 244px; ">
<legend></legend>
<table>
<tr>
<td>
<img>
</td>
<td>
<table>
<tr>
<td class="label"></td>
<td class="comparable"></td>
</tr>
<tr>
<td class="label"></td>
<td class="comparable"></td>
</tr>
... 8 more of same
</table>
</td>
</tr>
</table>
<table>
<tr>
<td style="text-align: center; ">
<button type="button"></button>
</td>
</tr>
</table>
</fieldset>
</td>
<td>
...essentially same as prior td
</td>
</tr>
</table>
</div>
</div>
相关的CSS:
div.track {
outline:solid thin;
margin-bottom:10px;
background-color:#DCEDEA;
}
td.label {
text-align:right;
white-space:nowrap;
}
'comparable' 只是一个标志,所以我可以在以后找到并可能重新设计它们。
这些结构是在 onreadystatechange 函数中从单个 JSON 响应创建的。其中有 100 多个正在创建,但在它们都准备好然后它们都同时出现之前我什么都看不到。我希望(并且更希望用户看到进度)每个 div 在准备好并添加(使用 mootools Element.inject)到 DOM 后立即显示。如果我逐步使用 Chrome 的开发工具,我会在注入后立即看到 div 的预期行为。
我对 Web 开发还很陌生,所以如果你觉得有必要批评我的方法,我愿意倾听你的想法,但我真的很想对我所看到的行为做出解释。
谢谢。
编辑
页面html的基本思想:
<body>
<div id='foo'></ div>
</body>
js的基本思想(onreadystatechange之内):
var jsonObj = JSON.decode(req.responseText);
for (var i = 0; i < jsonObj.objects.length; ++i) {
getStructure(jsonObj.objects[i]).inject('foo'); //getStructure builds the div above and returns the div element
}