怎么让客户端浏览网页时,只从服务器端下载一次jQuery.EasyUI.min.js?

我就是波涛 发布于 2016/12/27 16:37
阅读 631
收藏 0

我不懂前端的开发。目前遇到了一个问题:

我发现我们企业使用的一个系统中,客户端每浏览一个页面时,客户端都要从服务器端下载一次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>

加载中
1
紅顏為君笑
紅顏為君笑
用别人网站上的
0
ubibi
ubibi
浏览器自己会缓存的,不用你关心。
军师ives
回复 @我就是波涛 : 的确是每次都会产生请求,但是请看http状态,如果是304状态,就是使用缓存,并没有实际发生下载。 如果每次都是200状态,那么你的http服务器配置有问题。
我就是波涛
我就是波涛
可我通过后台查看流量,每点一个页面,都要重新下载一回的,根本没用缓存中的数据。不知道为什么
0
大賢者
大賢者
估计他浏览器用的什么隐身模式,不写临时文件的,都入内存。或很小的浏览器cache
我就是波涛
我就是波涛
哭死,我用的是360安全浏览器啊
0
a
alphat
这是浏览器做的事,你看到状态是304表明使用现有的缓存文件,并没有重新下载。
0
夜苍狼
夜苍狼
三楼的想法就很好,用别人网站上的,
0
wei2011
wei2011

不知道你的静态资源是不是通过nginx部署,如果是,只需要加上expires项设置就行了,配置大概这样:

server {
    listen 80;
    server_name xxx.com;

    location ^~ /static  {
        autoindex on;
        alias   /var/www/xxx/static;
       #下面就是浏览器缓存设置(30天),没有这个浏览器每次重新刷新都会重新下载静态文件
        expires 30d;
        add_header Pragma public;
        add_header Cache-Control "public";
    }

    location / {
        proxy_pass http://192.168.253.199:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}



wei2011
wei2011
回复 @liuleidefeng : 哦哦,Tomcat不熟
liuleidefeng
liuleidefeng
其实Tomcat也可以设置文件的缓存头的!加一个org.apache.catalina.filters.ExpiresFilter就行了
0
半张一块
半张一块
可以用ng的缓存策略,也可以自己在服务器设置缓存
0
liuleidefeng
liuleidefeng

第一种方案:如果你这些js文件都没有自己修改过(即:官方原版),那可以使用公共的CDN里面的js;

第二种方案:js文件之类的加上expires头,让浏览器缓存。如果你从浏览器调试工具查看,请注意查看是否勾选了禁用缓存。另外看返回头是304还是200,如果是304表明缓存生效。

ps:tomcat也可以设置文件的缓存头的!加一个org.apache.catalina.filters.ExpiresFilter就行了,具体见官方文档

0
我就是波涛
我就是波涛
谢谢大家的解答。我都试试去
返回顶部
顶部