【问题标题】:Showing a loader while waiting for server-side code (without a blank page)在等待服务器端代码时显示加载器(没有空白页)
【发布时间】:2022-05-07 00:43:17
【问题描述】:

我尝试为每个页面制作一个加载器,但失败了。

我想在完成服务器端作业之前显示加载器:[Loader] -> [Target page]

但是,HTML 是在服务器端作业之后加载的,所以我可以在空白页之后看到加载器:[Blank page] -> [Loader] -> [Target page]

这里是示例 HTML 代码 (sample.html),

<body>
    <!-- loading image  -->
    <div id="loading">
        <img id="loading-image" src="/img/loading.gif" alt="Loading..."/>
    </div>
    
    <section class="content">
        <span th:text="${data_list}"></span>
    </section>

    <script type="text/javascript">
        $(window).load(function() {
             $('#loading').hide();
            });
    </script>
</body>

和 Java 代码 (Controller.java)。

@RequestMapping(
    method = RequestMethod.GET,
    path = "sample"
)
String hosts(Model model) {
    model.addAttribute("data_list", service.getAllData());
    return "sample";
}

service.getAllData() 需要很长时间,所以我想在 service.getAllData() 完成之前显示用户加载器。但是,目前的状态是[空白页] -> [加载器] -> [目标页]

有没有什么奇特的方式先显示加载器,然后在每个页面的服务器端作业之后显示目标页面?即[Loader] -> [Target page]

【问题讨论】:

    标签: javascript java html spring-boot thymeleaf


    【解决方案1】:

    你可以默认加载显示为块,内容显示为无。

    一旦 ajax 完成,只需隐藏加载并显示内容。

    另外,请确保加载时覆盖整个页面。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2016-04-25
    相关资源
    最近更新 更多