怎么让客户端浏览网页时,只从服务器端下载一次jQuery.EasyUI.min.js?
我不懂前端的开发。目前遇到了一个问题:
我发现我们企业使用的一个系统中,客户端每浏览一个页面时,客户端都要从服务器端下载一次jQuery.EasyUI.min.js和另一个js文件(2个文件大概450KB)。但这样让服务器的网络带宽压力增加了很多。
怎么能让客户端下载一次这两个js文件,以后直接在客户端缓存中调用就行了?
下面是系统中的代码:
1、系统中每个jsp文件最上面的代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String basePath = request.getContextPath(); %>
<jsp:include page="${basePath}/common/include.jsp"></jsp:include>
---------------------------------------------------------------------------------
2、而include.jsp文件的最上面代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String path = request.getContextPath();
String basePath = path + "/"; %>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
谢谢大家的解答。我都试试去
第一种方案:如果你这些js文件都没有自己修改过(即:官方原版),那可以使用公共的CDN里面的js;
第二种方案:js文件之类的加上expires头,让浏览器缓存。如果你从浏览器调试工具查看,请注意查看是否勾选了禁用缓存。另外看返回头是304还是200,如果是304表明缓存生效。
ps:tomcat也可以设置文件的缓存头的!加一个org.apache.catalina.filters.ExpiresFilter就行了,具体见官方文档
可以用ng的缓存策略,也可以自己在服务器设置缓存
其实Tomcat也可以设置文件的缓存头的!加一个org.apache.catalina.filters.ExpiresFilter就行了
回复
@liuleidefeng : 哦哦,Tomcat不熟
不知道你的静态资源是不是通过nginx部署,如果是,只需要加上expires项设置就行了,配置大概这样:
三楼的想法就很好,用别人网站上的,
这是浏览器做的事,你看到状态是304表明使用现有的缓存文件,并没有重新下载。
哭死,我用的是360安全浏览器啊
估计他浏览器用的什么隐身模式,不写临时文件的,都入内存。或很小的浏览器cache
可我通过后台查看流量,每点一个页面,都要重新下载一回的,根本没用缓存中的数据。不知道为什么
回复
的确是每次都会产生请求,但是请看http状态,如果是304状态,就是使用缓存,并没有实际发生下载。 如果每次都是200状态,那么你的http服务器配置有问题。
浏览器自己会缓存的,不用你关心。
用别人网站上的