延迟JQuery加载的JavaScript解析

延迟JQuery加载的JavaScript解析,javascript,jquery,performance,jquery-deferred,pagespeed,Javascript,Jquery,Performance,Jquery Deferred,Pagespeed,当用谷歌页面速度测试一个网站时,我发现我无法摆脱JavaScript的延迟解析。我删除了所有javascript代码,只留下一个小代码作为 <script defer type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.test').click(fun

当用谷歌页面速度测试一个网站时,我发现我无法摆脱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>

$(文档).ready(函数(){
$('.test')。单击(函数(){
$(this.slideDown();
});
});
或者,即使没有任何jquery代码,也只需单独加载jquery文件即可

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

仍然会收到JavaScript延迟解析的警告,这不应该是吗

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

使用defer='defer'

而不是提供空的defere属性,我发现它表示:

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

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


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

只需将此添加到脚本
异步
示例:

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


基本上,您的客户端代码应该驻留在
.js
文件的某个地方,并将
defer
属性添加到
标记中。我还尝试将代码和jQuery源代码放在一个js文件中,但仍然收到警告。即使是单独加载jquery源代码,我也会收到警告。您是否将jquery包含放在文档末尾附近?@Interrobang yes放在页脚底部。只需删除
延迟
?或者我根本不理解这个问题?这不取决于您是否使用xhtml吗?只需使用
defer
。您不需要
defer='defer'
。这并不总是很有效。如果读者在模块化框架/平台中执行此操作,请确保检查JS控制台是否存在“无法读取属性”和/或“未定义”等错误,然后修复这些调用/模块。在未来的MOD中也需要这样的行为和必要的调整(这可能不会正确地延迟/异步)。