修改系统时间所带来的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),而不是偷懒直接修改系统时间,会发生各种问题。以上就是我遇到的。
相关推荐
以下是对"IOS清除缓存"这一主题的详细说明: **缓存的定义与作用** 缓存是应用程序为了提高数据读取速度而存储在本地的数据副本。当用户首次访问某个网站或打开一个应用时,相关的图片、文字和其他资源会被下载到...
在VSTO插件的开发和部署过程中,有时会遇到缓存问题,导致更新的插件无法正常加载或旧版本的插件仍然生效。这时,就需要用到Mage(Manifest Generation and Editing Tool)及其图形界面版MageUI.exe来帮助管理和清理...
微信开发比较头疼的一个情况就是缓存难以清除,然而奇怪的是微信app在IOS中是可以刷新页面的,但是Android中却不知道基于什么考虑,无法清除缓存也没有刷新功能,这个就给开发者设置了不小的障碍,哪有页面是最好就...
另一个常见误区是尝试使用`vm.$destroy()`方法来销毁组件以清除缓存。虽然这确实可以销毁组件,但同时也意味着该组件将无法再次被缓存,因为它已经被完全移除了。因此,一旦调用了`$destroy()`,该组件将永久失去...
在 `preHandle` 方法中,我们可以添加清除缓存的逻辑: ```java @Service public class SystemLogoutFilter extends LogoutFilter { @Override protected boolean preHandle(ServletRequest request, Servlet...
比如,如果采用URL访问方式清除缓存,那么必须确保清除缓存的URL不会被外部用户访问到,否则可能会造成安全隐患。通常做法是在清除缓存的URL中加入一个只有开发者知道的token参数,以此来验证访问者身份。这样,只有...
### 清除DNS缓存知识点详解 在计算机网络中,DNS(Domain Name System,域名系统)扮演着极其重要的角色,它负责将易于记忆的域名转换为计算机可识别的IP地址。随着时间的推移,为了提高解析速度和减轻DNS服务器的...
然而,这种方式会消耗少量电能,并且睡眠状态下系统无法清除缓存和临时文件,可能导致系统性能下降。如果内存较大(如4GB或更多),睡眠模式的表现会更好。值得注意的是,定期重启对于完成系统更新和某些软件更新是...
[PHPBB3-15174] - 无法清除缓存(ext&acp); [PHPBB3-15195] - 打印视图中的代码方向未定义为“ltr”; [PHPBB3-15201] - 删除样式将user_style设置为0; [PHPBB3-15224] - 使用Mysql全文搜索索引时,“仅限...
此时,可能需要强制清除缓存来解决这个问题。 **重新导入依赖的常见方式** 通常,可以通过以下几种方法尝试重新导入Maven依赖: 1. **刷新Maven项目**:在IDEA的右侧Maven面板中,点击"Reimport"按钮(刷新图标)...
当本地连接时无法清除DNS缓存,可能会导致DNS解析错误,表现为无法通过域名访问某些网站,但能直接通过IP地址访问。这种问题通常是由于DNS缓存中的信息过时或错误造成的。 首先,我们需要理解DNS解析故障的定义。当...
【iPad清除缓存和其它容量释放方法】 iPad的存储空间可能会因为各种原因逐渐变小,尤其是在使用一段时间后,“其他”这一类别下的容量占用往往会变得相当大。这部分空间主要包含了系统文件、应用程序数据、未同步的...
2. **解决网页问题**:当网页显示异常或加载缓慢时,可能是由于缓存中的旧版文件导致的,清除缓存可刷新页面内容。 3. **节省磁盘空间**:长期积累的缓存会占用大量硬盘空间,定期清理可释放空间。 **三、如何清除...
以下是一些针对iPad清除缓存和释放其他容量的方法: 1. **理解“其他”类别**: - "其他"类别通常包含系统产生的正常文件,与应用程序、媒体文件相关的数据,以及未通过iTunes传输的文件。 - 该类别可能含有水分...
了解IE缓存的工作原理对于清除缓存至关重要。 - **缓存位置**:IE的缓存通常存储在用户配置文件下的`Local Settings\Temporary Internet Files`目录中。 - **缓存内容**:包括但不限于HTML文件、CSS样式表、...
然而,随着时间的推移,缓存可能会变得过时或损坏,导致图标显示异常,如模糊、错误或无法显示。这时,清除图标缓存可以帮助刷新这些图像,恢复桌面图标的正常显示。 执行"清除图标缓存"的过程通常包括以下几个步骤...
本文将详细讲解如何在CodeIgniter中启用和清除缓存,以及缓存的工作原理。 **缓存工作原理** CodeIgniter的缓存机制允许开发者将动态生成的页面内容保存到硬盘上,以静态文件的形式存在。当用户首次访问某个页面时...
### 如何清空Web缓存:详尽指南 在日常工作中,我们经常需要清空Web缓存,尤其是在软件测试过程中,这有助于确保看到的是最新的网页版本而非旧版本的缓存内容。不同浏览器有不同的缓存清理方式,下面我们将详细介绍...
在使用SolidWorks PDM时大家可能会遇到一个问题,保存某个文件时SolidWorks提示文件已存在无法保存,可是你打开数据库中的文件夹却看不到那个已存在的文件。这个时候我自己做的这个PDM清缓存辅助工具就有用了,你只...