Chrome控制台:VM

时间:2013-12-04 23:47:26

标签: google-chrome google-chrome-devtools

在Chrome中直接在控制台中执行脚本时,我看到了:

enter image description here

有谁知道VM117:2的含义是什么

VM代表什么?

2 个答案:

答案 0 :(得分:43)

它是短语Virtual Machine的缩写。 在Chrome JavaScript引擎(称为V8)中,每个脚本都有自己的脚本ID。

有时V8没有关于脚本文件名的信息,例如eval的情况。因此,devtools使用与脚本ID连接的文本“VM”作为这些脚本的标题。

有些网站可能会通过XHR和eval获取许多JavaScript代码。如果开发人员想要查看这些脚本的实际脚本名称,则可以使用sourceURL。 DevTools解析并将其用于标题,映射等。

答案 1 :(得分:1)

感谢@MRB,

我重新审视了这个问题,今天找到了解决方案, 感谢https://stackoverflow.com/a/63221101/1818089

queueMicrotask (console.log.bind (console, "Look! No source file info..."));

它会将相似的元素分组,因此请确保为每个日志行添加唯一标识符,以便能够查看所有数据。

enter image description here

在以下示例中进行了演示。

代替

data = ["Apple","Mango","Grapes"];
for(i=0;i<10;i++){
    queueMicrotask (console.log.bind (console, " info..."+i));
}

使用

data = ["Apple","Mango","Grapes"];
for(i=0;i<data.length;i++){
    queueMicrotask (console.log.bind (console, " info..."+i));
}

更好的方法是创建一个执行此操作的 console.print 函数并调用它而不是 https://stackoverflow.com/a/64444083/1818089

中指出的 console.log
// console.print: console.log without filename/line number
console.print = function (...args) {
    queueMicrotask (console.log.bind (console, ...args));
}

注意上面提到的分组问题。

enter image description here