web开发在调试js时 google 浏览器中 一直使用的是缓存文件

166 阅读2分钟

web开发在调试js时 google 浏览器中 一直使用的是缓存文件,

一定要清一下缓存更新最新的文件。
但是如果开发及时更改js文件,及时刷新界面的话,google浏览器又可以
去重新加载最新的文件。
如果js在google浏览器中停留时间长,那么会刷新界面时一直使用缓存js ,而不
是去后台重新加载最新的js。

这是浏览器的cache机制,为了减少对服务器的请求数据量。

最好是给js文件加个版本信息,每次修改后版本号+1防止缓存,要不有些时候类似cdn的缓存不及时更新

chrome浏览器开发者工具中sources中的VM+数字是怎么一回事

已知信息是:调试的时候如果修改了js文件并保存。则会形成vm21423之类的sources标签。 但是有的时候未修改也会形成vm12323这样的虚拟标签。并且无法修改。

我想知道这是怎么一回事?
(有些网站能把主要的js代码都给隐藏得完全无形,console.log出来的东西后面的标号都是vm,用各种调试工具都找不到这些代码,这是怎么做到的?)

没有什么特别的意义,VM是虚拟机(Virtual Machine)的缩写,后面的数字是代码的编号ID,主要是为了区别原网页的js与其他来源的js(比如eval创建的, ajax获取的等)
stack overflow上有类似问题
debugging - Chrome Development Tool: [VM] file from javascript

当您同时编辑正在调试的文件时,也会出现这些VM文件。Chrome失去同步,当一个断点放在文件中,它将停止代码在内存中的某个地方的文件的其他位置。例如,test.html允许断点,但是当Chrome在VM99:test.html的其他位置停止时,它就会停止。解决方案是关闭Chrome浏览器重命名文件,例如test2.html,然后重新开始。(清除历史,缓存等不起作用,Chrome将继续加载VM99:test.html如果你尝试