3

使用 Google Page Speed 测试网站时,发现无法摆脱Defer parsing of JavaScript. 我删除了所有 javascript 代码,只留下了一小部分作为

<script defer type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('.test').click(function(){
            $(this).slideDown();
        });
    });
</script>

或者即使没有任何 jquery 代码,只需将 jQuery 文件独立加载为

<script defer type="text/javascript" src="jquery.min.js"></script>

仍然收到警告Defer parsing of JavaScript

4

3 回答 3

4

我找到了这个文档页面,上面写着:

要使用此技术,您应该首先在 onload 事件之前识别出文档实际未使用的所有 JavaScript 函数。对于包含超过 25 个未调用函数的任何文件,请将所有这些函数移动到单独的外部 JS 文件中。这可能需要对代码进行一些重构以解决文件之间的依赖关系。(对于包含少于 25 个未调用函数的文件,不值得重构。)

然后,在包含文档的头部插入一个 JavaScript 事件侦听器,强制在 onload 事件之后加载外部文件。您可以通过任何常用的脚本方式来执行此操作,但我们建议使用非常简单的脚本化 DOM 元素(以避免跨浏览器和同域策略问题)。这是一个示例(其中“deferredfunctions.js”包含要延迟加载的函数)

我从中了解到:您应该从onload事件处理程序“延迟加载”jQuery(有关如何执行此操作的示例,请参见上面的链接)。

于 2012-03-19T21:05:11.543 回答
2

那不应该

<script defer='defer' type="text/javascript" src="jquery.min.js"></script>

而不是提供空的延迟属性使用 defer='defer'

于 2012-03-19T21:04:54.677 回答
1

Just add this to your script async example:

<script type="text/javascript" async src="jquery.min.js"></script>
于 2012-11-19T08:13:11.647 回答