gpt4 book ai didi

javascript - 避免在 Spring 中重新加载 JSP 脚本文件

转载 作者:行者123 更新时间:2023-12-02 16:54:06 24 4
gpt4 key购买 nike

我每 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方法-

更改 Controller 以返回 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 非常陌生,所以这可能是一个愚蠢的查询,但我还无法破解它。

最佳答案

通过观察您的代码,我认为 Controller 调用了整个 success.jsp View 资源(包含脚本)。

model1.setViewName("success");

一个好的解决方案是将 Controller 设置为响应生成器,例如使用 JSON 作为 MediaType 并通过 JQuery 解析该响应> 以便管理 AJAX 请求/响应。

Sequence

有用的引用:

关于javascript - 避免在 Spring 中重新加载 JSP 脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26313496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com