在性能方面,是在每个页面上都加入一个(小)脚本更好,还是测试一下是否需要它?

时间:2012-12-20 作者:Sarah Lewis

我正在使用FitVids.js 使YouTube视频嵌入具有响应性布局的脚本。脚本为<;3kb,但实际上只有大约一半的页面嵌入了YouTube。

就不包含YouTube视频的页面的总加载时间而言,执行strpos() 对内容还是要包含脚本不管不顾?

我想这与最终用户的连接速度和服务器的资源有很大关系,老实说,这是一个低流量的网站,用户要求不高,所以这真的不重要。。。我这么问主要是因为我对性能优化没有很好的掌握,我想学习。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

正如@bungeshea已经说过的,用户方面发生的事情是离题的。一旦用户加载了文件,它将在浏览器缓存中保留一段时间,因此您不必担心双重加载的文件。

但让我们看看服务器端以及WordPress是如何处理这一问题的。

如果您想在您刚刚连接到的每个页面上加载脚本wp_enqueue_scripts:

add_action( \'wp_enqueue_scripts\', \'load_fitvid\' );

function load_fitvid()
{
    wp_register_script( \'fitvid\', plugins_url(\'/fitvid.js\', __FILE__) );
    wp_enqueue_script( \'fitvid\' );
}
非常简单。

如果只想在有YouTube视频的情况下加载脚本,则必须连接到the_content, 搜索具有主机名的URLyoutube.comyoutu.be, 检查是否WP_Embed::autoembed 激活(这会将URL转换为嵌入)并加载脚本(如果所有这些条件的计算结果为TRUE.

这比较慢。这也不是很安全:视频的默认处理程序可能会被覆盖,并在内容解析器之后运行。

所以:是的,有区别。我会在你的情况下使用简单的方法。如果所有帖子中只有1%有视频……那么情况就不同了。我会save_post 然后更新自定义元值load_fitvid. 在前端,我将测试该值(更快),然后加载脚本。但这在现有岗位上很难实现。

结束

相关推荐