如何用ajax跳转到jsp页面,并在载入过程中提示“加载中”?

qq_21823095 2018-05-11 07:04:39
今天给导师看毕业设计,有一个功能要跳转到页面,由于该页面要显示的图片在后台生成很慢,一跳转到那个页面就一片空白要等半天。
导师看完后希望我改进一下,在加载完成前做一个“加载中”的提示。今天看了一天ajax,还是搞不懂怎么跳转。
下面是程序中servlet中的跳转

request.setAttribute("filepath",filepath);
RequestDispatcher view=request.getRequestDispatcher("/jfreeChart.jsp");
view.forward(request, response);


...全文
872 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2018-05-14
  • 打赏
  • 举报
回复
写了个简单的例子,你照着改改 当ajax访问ashx时,会显示wait 访问结束后,wait会消失。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="../Scripts/jquery-1.7.1.min.js"></script>
</head>
<body>
    <div id="d1" style="display:none;">Wait a moment</div>
    <input type="button" id="btn1" value="Submit"/>
</body>
    <script>
        $('#btn1').click(function () {
            $.ajax({
                type: "get",
                url: "/ashx/Handler1.ashx",
                dataType: "text",
                beforeSend: function () {
                    $('#d1').show();
                },
                complete: function () {
                    $('#d1').hide();
                },
                success: function (data) {
                    alert(data);
                }
            });
        })
        
    </script>
</html>
handle1,假设使用了3秒来生成图片,并最后返回图片名称
public class Handler1 : IHttpHandler
    {
        
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            Thread.Sleep(3000);
            string filePath = "helloworld.jpg";

            context.Response.StatusCode = (int)HttpStatusCode.OK;

            context.Response.Write(filePath);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧