javascript - 如何快速显示大部分 html 页面,然后最后加载缓慢的内容?

标签 javascript jquery ajax jsp taglib

我有一个像这样的 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 .

我要firstDisplayStuffendingDisplayStuff立即显示。

但我认为使用 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/

相关文章:

javascript - 在 React Component 中需要某种类型的 child

javascript - jQuery Autocomplete 快完成了吗?

php - Codeigniter ajax 国家/地区下拉列表不起作用

javascript - Jquery .html() 和 .attr() 填充 P 标签

javascript - 处理所有 AJAX 调用的通用方法

jquery - 使用 ajax 时使用带有 tablesorter 的外部过滤器

javascript - 无法在 Accordion 内交换 div

javascript - 在选中和取消选中复选框时显示和隐藏 div

php - AJAX 无法发送到 PHP

javascript - 需要每行总值并且应显示在行末尾