乍一看,您的网站中确实包含了大量Javascript。您可以采取一些步骤来减少/加速此部分。
在我开始之前,请允许我提醒您,Google的PageSpeed并不是一个衡量网站加载速度的实际工具,它更多的是一个查看如何设置网站以确保获得服务器允许的最佳加载时间的工具。要查看实际加载时间,请转到控制台上的“网络”选项卡,加载不带缓存文件的页面(cmd-f5),并查找两条竖线,第一条是“文档就绪”,第二条是“完全加载的页面”。
受够了理论,让我们开始工作:-)
确定您实际需要的脚本这可能看起来很琐碎,但却是非常重要的一步。
您应该只在每个页面上加载所需的Javascript。在您的示例中,安装了很酷但功能广泛的JWPlayer。你确定每页都需要它吗?
还要检查您的文件,查看插件中的遗留文件或不需要的其他文件,并将其删除。
加载缩小版本
下一步是缩小文件。例如,您加载
jquery.js
而不是
jquery.min.js
. 这将允许您减少传输的数据。
对于非标准Javascript文件,如您自己的scripts.js
, 有很多免费的Javascript浏览器。只需保存缩小的文件,就可以将这行代码添加到functions.php
: (本例使用jQuery,但它适用于所有正确排队的Javascript片段)
function modify_jquery() {
if (!is_admin()) {
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', get_bloginfo( \'template_url\' ) . \'js/jquery.min.js\', false, \'1.8.1\');
wp_enqueue_script(\'jquery\');
}
}
add_action(\'init\', \'modify_jquery\');
从Google库加载通用Javascript现在说到jQuery之类的文件,您可以通过将此代码添加到您的
functions.php
(请注意,您不应该同时使用jQuery执行此操作和befor操作-最后一点只是为了说明如何更改排队Javascript文件的包含路径)
//Making jQuery Google API
function modify_jquery() {
if (!is_admin()) {
// comment out the next two lines to load the local copy of jQuery
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js\', false, \'1.8.1\');
wp_enqueue_script(\'jquery\');
}
}
add_action(\'init\', \'modify_jquery\');
组合Javascriptfiles您可以采取的另一个步骤是将一些Javascriptfiles组合成一个,以减少浏览器发送到服务器的请求量。
在页脚中加载Javascript
This is very important!
将页面上不需要的所有Javascript从
Head
到页脚部分,以允许在加载繁重的Javascript之前构建页面。
这不会改变传输的数据量,但网站用户可以更快地看到结果,因为页面是先加载的。
这个wp_enqueue_script()
函数有一个参数用于在页脚中加载特定脚本(第五个参数必须设置为true
). 请参见代码参考here.
使用与上述相同的函数,您可以完成该行为。
请确保正确设置依赖项,以便javascript以正确的顺序加载。dependecies(第三个参数)告诉WordPress应该首先加载哪些文件,因此如果将“jquery”放在其中,它将始终在加载“jquery”后加载。
到目前为止,还有很多工作要做,你可能会对上面提到的修改代码感到沮丧,因为它并不总是很清楚,尤其是如果你使用了很多插件,依赖项是如何工作的,哪些文件实际上可以加载到页脚中,等等。
始终一步一个脚印,检查您的网站是否仍能按预期工作。
那么一个可以做到这一切的插件呢
当然,您可以始终使用以下插件
W3 Total Cache 它可以处理Javascript的组合、缩小和位置,但这很难处理。如果你明白了,怎么做,太好了!真正理解它是如何工作的需要很多时间,而这是W3 Total Cache中我经常感到沮丧的一部分。
然而,如果您遵循上述规则,并确保您和所有插件都以WordPress的方式正确地将javascript排队,这将是加快javascript加载速度的一大步。
最后但并非最不重要的是,哇,我讨厌这个词。但话说回来,我一直想写“最后但并非最不重要”,这在我的一生中至少有一次;-)
你的Google PageSpeed已经很好了。Javascriptstuff只会导致最大值增加几个点,所以不要只关注这一点——查看实际加载时间,然后发布结果。
现在,玩得开心点!:-)