我每10秒钟重新加载一个JSP页面,我意识到每次重新加载脚本文件并增加大小,最后我的页面崩溃。
这是我重新加载的jsp和脚本 -
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<%
//JSP code
long ts = (new Date()).getTime(); //Used to prevent JS/CSS caching
%>
<title>Login Success</title>
<link href="assets/css/bootstrap-united.css?<%=ts %>" rel="stylesheet" />
<link href="assets/css/customtable.css?<%=ts %>" rel="stylesheet" />
<script src="bootstrap/js/jquery-1.11.1.min.js?<%=ts %>"></script>
<script src="bootstrap/js/bootstrap.js?<%=ts %>">
</script>
</head>
<body>
<div id="buntha">
<div class="navbar navbar-default">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target=".navbar-responsive-collapse">
<span class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse navbar-responsive-collapse">
<form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search">
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href=".index.html">Home</a></li>
<li><a href="signup.html">Signup</a></li>
<li class="active"><a href="login.html">Login</a></li>
<li class="dropdown"><a href="#" class="dropdown-toggle"
data-toggle="dropdown">Explore<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Contact us</a></li>
<li class="divider"></li>
<li><a href="#">Further Actions</a></li>
</ul></li>
</ul>
</div>
<!-- /.nav-collapse -->
</div>
我的脚本重新加载 -
<script type="text/javascript">
var url = '/Motion/success.html'
$(document).ready(function() {
$.ajaxSetup({ cache: false });
var username = '';
var password = '';
var cubename = '';
var status = 'load';
setInterval(function() {
$("#buntha").load('/Motion/success.html',
{username:'<%=userName%>',password:'<%=Password%>',status:status})
.fadeIn("slow");
}, 10000);
});
</script>
和我的Controller Post方法 -
将控制器更改为返回JSON
@RequestMapping(value="/success", method=RequestMethod.POST,headers="Accept=*/*")
public Model success(@Valid @ModelAttribute("username") String username,@Valid @ModelAttribute("password") String password,@Valid String cubename,@Valid String status, BindingResult result,Model model) {
log.info("Posting Data in Success With "+username+" passowrd "+password+" Cubename "+cubename+" status "+status);
boolean found = studentService.findByLogin(username, password);
if (found) {
if(cubename != null)
updateDataBaseContent(username,cubename,status);
StudentLogin studentLogin = new StudentLogin();
studentLogin.setUserName(username);
studentLogin.setPassword(password);
List<Cube> cubes = cubeService.getCubes();
model.addAttribute("name", studentLogin);
model.addAttribute("message", cubes);
}
return model;
}
如何避免重新加载所有脚本文件 我无论如何只调用div标签加载,但为什么加载netire页面。 我是Spring和Web的新手,所以它可能是一个愚蠢的查询,但我还无法破解它。
答案 0 :(得分:2)
通过观察你的代码,我想控制器会调用整个success.jsp
视图资源(包含脚本)。
model1.setViewName("success");
一个好的解决方案可能是将控制器设置为响应生成器,例如使用 JSON 作为 MediaType 并通过 JQuery 为了管理 AJAX 请求/回复。