`

无法清除缓存

 
阅读更多

修改系统时间所带来的2个坑。

1)tomcat不更新资源文件。

最近需要用JS做一个小功能。大致就是获取服务器的时间,然后判断用户填写的时间是否超时。所以,为了测试,需要频繁的改系统时间

然后在开发过程,发现浏览器的“缓存”(打了双引号,其实并不是缓存的原因)无论用什么办法都无法清除。后来经过分析,就是修改了系统的时间才导致了“缓存”无法清除(由于把系统时间修改的比当前要早,你修改过的文件,修改时间比tomcat webapp文件夹里面的时间更加早,估计tomcat就是判断修改时间来编译/或者放入最新的java/或者资源文件)。下面,还原一下车祸现场:

1.修改系统时间,当前正确时间为2017年9月19日,我们把系统时间调整为9月18日;

可以看到,tomcat服务器存放得并未和项目文件的同步(eclipse已经刷新了资源)。

 而Server中也显示已经同步。即使publish,tomcat下面的依然没有更新。



 从以上可以得出结论:tomcat是判断文件的修改时间来同步最新的文件的。(至少上面的现象说明如此)

2.那么我们看看浏览器那边的情况。

首先已经关闭缓存。所以浏览器是从服务器重新获取的js文件。


我在js文件中添加了一个alert。但是无论怎么刷新。这个alert都无法展现。 

原因就是tomcat中并没有更新你的文件。

这个烦了我一早上。一直不知道为什么缓存清除不了,以为是浏览器的缓存,结果是tomcat没有更新资源。

 

2)在js中无法请求https资源

在js中,如果有https的资源请求,那么会因为你修改了系统的时间,无法建立安全的https链接。

这是我在js中请求的https资源。

 

修改了系统时间,之后控制台会出现以下错误:



 我们可以打开百度首页,来让这个问题更加明显:



 
 

*tips:需要涉及到时间的功能,测试的时候尽量不要修改系统时间,可以直接传入时间作为参数(可以在这个网站,转化需要的timestamp),而不是偷懒直接修改系统时间,会发生各种问题。以上就是我遇到的。
 

  • 大小: 145.6 KB
  • 大小: 10.5 KB
  • 大小: 9.2 KB
  • 大小: 15.8 KB
  • 大小: 6.3 KB
  • 大小: 10.1 KB
  • 大小: 36.6 KB
分享到:
评论

相关推荐

    IOS清除缓存

    以下是对"IOS清除缓存"这一主题的详细说明: **缓存的定义与作用** 缓存是应用程序为了提高数据读取速度而存储在本地的数据副本。当用户首次访问某个网站或打开一个应用时,相关的图片、文字和其他资源会被下载到...

    vsto插件部署清除缓存mage工具

    在VSTO插件的开发和部署过程中,有时会遇到缓存问题,导致更新的插件无法正常加载或旧版本的插件仍然生效。这时,就需要用到Mage(Manifest Generation and Editing Tool)及其图形界面版MageUI.exe来帮助管理和清理...

    Adnroid 微信内置浏览器清除缓存

    微信开发比较头疼的一个情况就是缓存难以清除,然而奇怪的是微信app在IOS中是可以刷新页面的,但是Android中却不知道基于什么考虑,无法清除缓存也没有刷新功能,这个就给开发者设置了不小的障碍,哪有页面是最好就...

    【JavaScript源代码】vue keepAlive缓存清除问题案例详解.docx

    另一个常见误区是尝试使用`vm.$destroy()`方法来销毁组件以清除缓存。虽然这确实可以销毁组件,但同时也意味着该组件将无法再次被缓存,因为它已经被完全移除了。因此,一旦调用了`$destroy()`,该组件将永久失去...

    java shiro实现退出登陆清空缓存

    在 `preHandle` 方法中,我们可以添加清除缓存的逻辑: ```java @Service public class SystemLogoutFilter extends LogoutFilter { @Override protected boolean preHandle(ServletRequest request, Servlet...

    PHP清除缓存的几种方法总结

    比如,如果采用URL访问方式清除缓存,那么必须确保清除缓存的URL不会被外部用户访问到,否则可能会造成安全隐患。通常做法是在清除缓存的URL中加入一个只有开发者知道的token参数,以此来验证访问者身份。这样,只有...

    清除dns缓存

    ### 清除DNS缓存知识点详解 在计算机网络中,DNS(Domain Name System,域名系统)扮演着极其重要的角色,它负责将易于记忆的域名转换为计算机可识别的IP地址。随着时间的推移,为了提高解析速度和减轻DNS服务器的...

    Mac不使用时关机、睡眠、一直开机的利与弊.docx

    然而,这种方式会消耗少量电能,并且睡眠状态下系统无法清除缓存和临时文件,可能导致系统性能下降。如果内存较大(如4GB或更多),睡眠模式的表现会更好。值得注意的是,定期重启对于完成系统更新和某些软件更新是...

    phpBB v3.2.2 正體中文.zip

    [PHPBB3-15174] - 无法清除缓存(ext&acp); [PHPBB3-15195] - 打印视图中的代码方向未定义为“ltr”; [PHPBB3-15201] - 删除样式将user_style设置为0; [PHPBB3-15224] - 使用Mysql全文搜索索引时,“仅限...

    IDEA强制清除Maven缓存的方法示例

    此时,可能需要强制清除缓存来解决这个问题。 **重新导入依赖的常见方式** 通常,可以通过以下几种方法尝试重新导入Maven依赖: 1. **刷新Maven项目**:在IDEA的右侧Maven面板中,点击"Reimport"按钮(刷新图标)...

    如何修复本地连接时无法清除DNS缓存[参考].pdf

    当本地连接时无法清除DNS缓存,可能会导致DNS解析错误,表现为无法通过域名访问某些网站,但能直接通过IP地址访问。这种问题通常是由于DNS缓存中的信息过时或错误造成的。 首先,我们需要理解DNS解析故障的定义。当...

    ipad清除缓存和其它容量释放方法.docx

    【iPad清除缓存和其它容量释放方法】 iPad的存储空间可能会因为各种原因逐渐变小,尤其是在使用一段时间后,“其他”这一类别下的容量占用往往会变得相当大。这部分空间主要包含了系统文件、应用程序数据、未同步的...

    IE缓存清除

    2. **解决网页问题**:当网页显示异常或加载缓慢时,可能是由于缓存中的旧版文件导致的,清除缓存可刷新页面内容。 3. **节省磁盘空间**:长期积累的缓存会占用大量硬盘空间,定期清理可释放空间。 **三、如何清除...

    IPAD清除缓存和其它容量释放方法[文].pdf

    以下是一些针对iPad清除缓存和释放其他容量的方法: 1. **理解“其他”类别**: - "其他"类别通常包含系统产生的正常文件,与应用程序、媒体文件相关的数据,以及未通过iTunes传输的文件。 - 该类别可能含有水分...

    清除IE缓存

    了解IE缓存的工作原理对于清除缓存至关重要。 - **缓存位置**:IE的缓存通常存储在用户配置文件下的`Local Settings\Temporary Internet Files`目录中。 - **缓存内容**:包括但不限于HTML文件、CSS样式表、...

    清除图标缓存和系统托盘

    然而,随着时间的推移,缓存可能会变得过时或损坏,导致图标显示异常,如模糊、错误或无法显示。这时,清除图标缓存可以帮助刷新这些图像,恢复桌面图标的正常显示。 执行"清除图标缓存"的过程通常包括以下几个步骤...

    CodeIgniter启用缓存和清除缓存的方法

    本文将详细讲解如何在CodeIgniter中启用和清除缓存,以及缓存的工作原理。 **缓存工作原理** CodeIgniter的缓存机制允许开发者将动态生成的页面内容保存到硬盘上,以静态文件的形式存在。当用户首次访问某个页面时...

    怎么清空web缓存

    ### 如何清空Web缓存:详尽指南 在日常工作中,我们经常需要清空Web缓存,尤其是在软件测试过程中,这有助于确保看到的是最新的网页版本而非旧版本的缓存内容。不同浏览器有不同的缓存清理方式,下面我们将详细介绍...

    SolidWorks PDM清缓存辅助工具

    在使用SolidWorks PDM时大家可能会遇到一个问题,保存某个文件时SolidWorks提示文件已存在无法保存,可是你打开数据库中的文件夹却看不到那个已存在的文件。这个时候我自己做的这个PDM清缓存辅助工具就有用了,你只...

Global site tag (gtag.js) - Google Analytics