我有一个像这样的 JSP 页面:
<html><body>
<div id="mainContainer">
<div id="firstDisplayStuff">...</div>
<% out.flush(); %>
<div id="slowStuff">
<mytaglib:abc name='SlowBoat'>...</mytaglib>
</div>
</div>
<div id="floatRightContainer>
<div id="endingDisplayStuff">...</div>
<div>
</body></html>
当它到达 taglib 时,它需要很长时间,而这种延迟是无法避免的。
所以使用 out.flush();
我至少可以显示 firstDisplayStuff
,但是当 taglib 的东西运行时,用户只是坐在那里看着半页。只有在完成之后,用户才会看到 endingDisplayStuff
.
我要firstDisplayStuff
和 endingDisplayStuff
立即显示。
但我认为使用 jQuery,将有一种方法可以离开 <div id="slowStuff">
空白,稍后加载。
加载 jQuery 代码会是什么样子 <div id="slowStuff">
在两个显示内容 div 都显示之后?我会将代码放在哪里?它将如何被调用?
编辑:添加了<div id=mainContainer>
和 <div id=floatRightContainer>
进入现有示例。
最佳答案
为此您不需要 JavaScript。只需将最后一个 div 放在较慢的 div 之前,然后使用 CSS 根据您的需要在屏幕上排列 div:
<html><body>
<div id="firstDisplayStuff">...</div>
<div id="endingDisplayStuff">...</div>
<% out.flush(); %>
<div id="slowStuff" style="display: none;">
<mytaglib:abc name='SlowBoat'>...</mytaglib>
</div>
</body></html>
您可以使用几行代码,从 body onload 调用,将慢速 div 放到它所属的位置,然后显示它。 $('#slowStuff').insertAfter('#someDiv')
让它位于正确的位置,并且 $('#slowStuff').show();
让它显示出来。
关于javascript - 如何快速显示大部分 html 页面,然后最后加载缓慢的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885674/