我如何知道Chrome执行外部脚本的时间?

时间:2017-06-14 01:57:52

标签: javascript

我是一名javascript和chrome devtools新秀。我们有一个包含以下内容的页面:

<head>
..
<script type="text/javascript" src=”path/to/some/external/script1.js>
..
</head>

<body>
… some HTML
<script type="text/javascript”>
..some inline javascript code here
</script>
...some more HTML
<script type="text/javascript”>
..some more inline javascript code here
</script>
</body>

我的理解是浏览器将按照它在页面上显示的顺序执行javascript。当浏览器执行JS时,我是否可以让浏览器打印一条消息,例如&#34;现在执行的脚本.js&#34;不修改script.js

2 个答案:

答案 0 :(得分:1)

你唯一可以做的就是在它下面放一个<script>标签,并在那里运行代码。

答案 1 :(得分:1)

使用MutationObserver,创建以下内联脚本作为<head>

中的第一个标记
    var observer = new MutationObserver(function (mutations) {
        mutations.forEach(function (mutation) {
            if (mutation.type == 'childList') {
                [ ].filter.call(mutation.addedNodes, function (node) {
                    return node.nodeName == 'SCRIPT' && node.src.length;
                }).forEach(function (script) {
                    script.addEventListener('load', function () {
                        console.log('finished loading', script.src);
                    });
                });
            }
        });
    });
    var config = { subtree: true, childList: true };
    var target = document;
    observer.observe(target, config);

尽管如此,这会告诉你何时触发加载事件,我不确定这与正在运行的脚本有什么关系

  

初始测试(在Firefox中)表明代码运行后会发生加载事件 - 您的里程可能会有所不同

通常的 Internet Exploder警告 - 仅适用于IE11 - 对于IE9 / IE10,您可以使用DOMSubtreeModified事件执行某些操作,但我很确定这样做会很痛苦所以。对于IE8及更早版本,我会建议一条嘲弄的消息告诉用户停止使用垃圾浏览器:p