【JS】【11】清理缓存

前言:项目更新后JS,CSS文件常出现缓存问题,代码已更改,但在有些客户端不会立即生效

解决方案:加时间戳

但是加时间戳也有不同的方案,手动加太麻烦,不过可以快速处理问题。

jsp页面:

<% String dateTime = org.apache.commons.lang.time.DateFormatUtils.format(java.util.Calendar.getInstance(), "yyyyMMddHHmmss"); %>
<script type="text/javascript" src="/js/xx.js?v=<%=dateTime%>"></script>
 <link rel="stylesheet" type="text/css" href="/css/layout.css?v=<%=System.currentTimeMillis() %>">

ftl页面(FreeMarker模板文件):

<script type="text/javascript" src="/js/xx.js?v=${.now}"></script>

上面两种方法也有问题,在代码没有更新的情况下,每次用户访问页面也都要重新拉取静态文件。而且html页面是没有上面两种写法的。

还有一种方法是访问后台路由时返回时间戳。侵入性太强,而且同样存在上面的问题。

一种较为通用的写法:

<script>document.write("<script type=‘text/javascript‘ src=‘/js/xx.js?v=" + Date.now() + "‘><\/script>");</script>

控制版本号:TODO

参考博客:

html里script标签src自动加上时间戳,降低缓存影响 - lllo3o的博客 - CSDN博客
https://blog.csdn.net/lllo3o/article/details/78292663

HTML页面自动清理js、css文件的缓存(自动添加版本号) - sinat_29740819的博客 - CSDN博客
https://blog.csdn.net/sinat_29740819/article/details/72875811

原文地址:https://www.cnblogs.com/huashengweilong/p/10808738.html

时间: 2024-10-19 15:42:13

【JS】【11】清理缓存的相关文章

CVS清理缓存

通过在 <script type="text/javascript" src="/MapTest/gis/dwgis.js?0.0.1"></script> 加上版本号,来实现清理缓存.

iOS 清理缓存功能实现第一种方法

1 添加一个提示框效果导入第三方MBProgressHUD #import "MBProgressHUD+MJ.h" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <br><br>/**  *  清理缓存第一种方法  */ -(void)clearCache { dispatch_async(                dispatch_get_global_queue(DISP

iOS 清理缓存功能的实现第二种方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 /**  *  清理缓存第二种方法  *  *  @param sender <#sender description#>  */ - (void)clearCache:(id)sender {     //彻底清除

11. Nginx缓存

缓存类型 浏览器缓存 Nginx代理服务器缓存 服务器缓存,例如Redis.Memcache等 缓存配置 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path upstream backend { server x.x.x.x:1023; server x.x.x.x:1024; server x.x.x.x:1025; } #缓存存放的位置是 /data/nginx/cache,目录层级为两层,最多存

iOS开发-清理缓存功能的实现

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类app的标配功能. 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取.删除缓存文件的实现. 获取缓存文件的大小 由于缓存文件存在沙箱中,我们可以通过NSFileManager API来实现对缓存文件大小的计算. 计算单个文件大小 +(float)fileSizeAtPath:(NSStrin

0122 ---清理缓存

IOS清理缓存的几种方法,有需要的朋友可以参考下. - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] fileSize]; } r

CentOS,清理缓存(drop_caches)

读写文件时,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这就是Cache Memory(缓存内存).即使程序运行结束后,Cache Memory也不会自动释放.这就会导致程序频繁读写文件后,可用物理内存会很少.其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以不必担心没有内存可用.如果你希望手动去释放Cache Memory(缓存内存)的话也是有办法的. cat /proc/sys/vm/drop_caches0 //默认是0:1-清空页缓存:2

iOS清理缓存的几种方法

iOS清理缓存的几种方法,有需要的朋友可以参考下: 1.计算文件大小: - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] file

Session脏检查及清理缓存机制

今天看hibernate书,看到"理解Session的缓存"这一张脏检查及清理缓存的机制后,突然明白程序中session并非一定要执行update()方法.没有执行update()方法,对象仍会与数据库进行数据交互. Session脏检查及清理缓存机制: Session缓存中对象的属性每次改变时,Session不会立即清理缓存及执行Update SQL,而是会在特定时间清理缓存(执行相应的sql),提交事务. 清理缓存时,会相应的改变对象的状态. Java对象在内存中有四个状态:临时状

计算缓存大小和清理缓存

第一步:创建工具类-BDFileManagerTool (1).h的代码 @interface BDFileManagerTool : NSFileManager /** 计算单个文件大小*/ + (float)fileSizeAtPath:(NSString *)path; /** 计算目录大小 */ +(float)folderSizeAtPath:(NSString *)path; /** 清除缓存*/ +(void)clearCache:(NSString *)path; @end (2