网站用户注册怎么做,零基础网站建设教学公司,seo搜索方法,网站设计的建议一、现象描述
在Chrome的开发者工具中#xff0c;你可能会看到一些以“VM”开头的JavaScript文件#xff08;如“VM111.js”#xff09;。 二、VM文件到底是什么#xff1f; “VM”表示的是Virtual Machine#xff08;虚拟机#xff09;#xff0c;这些文件通常表示由浏…一、现象描述
在Chrome的开发者工具中你可能会看到一些以“VM”开头的JavaScript文件如“VM111.js”。 二、VM文件到底是什么 “VM”表示的是Virtual Machine虚拟机这些文件通常表示由浏览器生成和执行的虚拟机脚本环境中的临时脚本。这些脚本并不是项目源代码的一部分也不是实际存在的物理文件。 它们在浏览器的内存中创建并执行。
三、它有什么用 比如说当你在调试一个网页时如果在某些动态生成并执行的JS代码上设定了断点Chrome调试器会在一个以VM开头的文件中显示这些代码例如VM111.js。这个VM文件的存在只是为了调试目的它并不存在于服务器端也不会被存储在本地而是存在于浏览器内存中。一般情况下这类文件的出现是因为浏览器对JavaScript代码的处理方式如动态编译或者JavaScript堆栈跟踪。
四、它出现的原因
1动态执行的JavaScript代码 比如通过eval函数或者new Function方法Chrome浏览器会创建一个VM文件来展示这段临时执行的代码 比如某个网页因为反爬虫动态生成了debugger这些断点并没有直接写在服务器上的原始JavaScript文件中而是在某些JavaScript代码的执行过程中被生成并因此触发debugger。 这些代码也会在执行时被浏览器视为临时的VM脚本并在执行到debugger时暂停执行从而造成所谓的“无限debugger循环”。
2来自执行栈的代码 有时候当JavaScript引擎处理异步操作例如Promise、setTimeout等中的错误时错误堆栈可能包含到VM脚本的引用这是因为内部错误回调函数是在虚拟环境中执行的。