【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
我不懂前端的开发。目前遇到了一个问题:
我发现我们企业使用的一个系统中,客户端每浏览一个页面时,客户端都要从服务器端下载一次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>
不知道你的静态资源是不是通过nginx部署,如果是,只需要加上expires项设置就行了,配置大概这样:
第一种方案:如果你这些js文件都没有自己修改过(即:官方原版),那可以使用公共的CDN里面的js;
第二种方案:js文件之类的加上expires头,让浏览器缓存。如果你从浏览器调试工具查看,请注意查看是否勾选了禁用缓存。另外看返回头是304还是200,如果是304表明缓存生效。
ps:tomcat也可以设置文件的缓存头的!加一个org.apache.catalina.filters.ExpiresFilter就行了,具体见官方文档