html - 在 jsp 站点上执行 java 代码时显示加载 gif

标签 html css jsp

我发现了很多类似的东西,但没有一个真正符合我的愿望。

我有一个 jsp,开头是 java 代码,实际上需要 10-30 秒才能完成(我从数据库中获取一些东西并构建图表),我想在中间添加一个漂亮的加载图像页面并在加载完成后淡出。

最佳答案

这不是一个直接的解决方案。但是,它可以通过使用 iframe 来实现您的要求。

我对单页 jsp 的试验失败了,因为直到 JSP 内部的进程完成后才加载页面。

以下是我使用的解决方法:

  1. Create the main JSP (assume index.jsp) page where display part is handled
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Testing the loading</title>
    <script type="text/javascript">
    function processRecords(){
        document.getElementById("mainContent").src = "process.jsp";
    }
    </script>
</head>
<body onload="processRecords()">
    <iframe id="mainContent" width="100%" style="border: none" seamless src="loader.jsp"></iframe>
</body>
</html>
  1. Create a JSP/HTML (assume loader.jsp) with loader display part
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>Processing</title>
</head>
<body>
<img src="images/loader.gif" style="position:absolute; top:0; bottom:0; left:0; right:0; margin:auto;"/>
</body>
</html>
  1. Create a JSP (assume process.jsp) with actual processing & results display
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>Processing</title>
</head>
<body>
    <%
        //Following is a manual sleep simulating a process 
        try {
            //Sleep for 10 seconds
            Thread.sleep(10000);
        } catch (InterruptedException ex) {
            out.write("Error occurred while processing");
        }
        out.write("Done!");
    %>
</body>
</html>
  1. Working

当主 JSP 页面 (index.jsp) 加载时,它将使用指向加载程序 JSP 页面 (loader.jsp) 的 iframe src 进行加载。因此,最初将显示加载器 gif 图像。主 JSP 页面中的 onload 方法调用 javascript,后者又调用实际处理 JSP 页面 (process.jsp)。在处理JSP页面返回结果之前,iframe中的加载器页面不会被替换模拟,从而模拟Java代码处理前的加载。

关于html - 在 jsp 站点上执行 java 代码时显示加载 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476073/

相关文章:

html - Chrome MediaRecorder API 无法录制来自 FreeSwitch 的远程视频,但可以录制本地媒体

php - 使用 php 和 mysql 进行多个文件上传

javascript - 引导多元素旋转木马一次移动一个元素点击?

html - 为子元素制作背景剪辑

html - img上传到服务器后不显示

html - 位置相对容器空白

JavaBeans - 变量的 getProperty

java - 将 Arraylist 从 Servlet 返回到 DAO 返回到 Servlet,然后返回到 Jsp

java - 404 错误配置与预编译的 jsp 不工作