最近,我发现博客访问速度已经放缓。我检查了控制台,发现所有静态资源都在200ms内加载。只有第一份文件达到了6.65s。它被称为等待(TTFB)。 )占用主要加载时间的东西。具体的控制台显示内容如下:
那么 Waiting(TTFB) 是什么呢?
TTFB代表Time To First Byte,它指的是启动网络请求以从服务器接收第一个字节的时间。它包含TCP连接时间,发送HTTP请求的时间以及获取响应消息的第一个字节的时间。
如果它不是服务器的问题,基本上可以肯定它是我过去几天扔博客的结果。由于我最近几天测试了很多插件并添加了很多功能代码,我不知道为什么博客负载正在放缓。我不能从头开始测试它。停用所有插件,启用默认主题。速度上去了,说明是主题或者插件的原因;
启用默认主题,逐一测试插件,速度基本不变,说明插件没有问题;
停用所有插件,启用 DUX 主题,速度慢下来了,说明主题有问题?
备份主题,后台删除 DUX 重新安装主题,速度上去了,说明原版 DUX 主题没问题,我自己折腾的东西有问题。
下一步是分析我扔的东西。我使用的JS,CSS,图片和其他静态文件都是七牛云图像存储,查看控制台没有什么异常,只剩下functions.php文件,用于个性化修改主题。恢复之前扔过的主题文件备份,然后替换原始主题的functions.php文件后,网站速度上升,这进一步说明等待(TTFB)时间太长,无法加载文件在网站加载过程中。
我分别逐个添加了功能函数,并添加了网页访问的速度。具体过程不详细。最后,我终于发现以下代码问题:
//网站链接自动转换为英文
function qgg_translate_cn_post_title_to_en( $title ) {
$translation_render = 'http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=realtime&simple_means_flag=3&query='.$title;
$wp_http_get = wp_safe_remote_get( $translation_render );
if ( emptyempty( $wp_http_get->errors ) ) {
if ( ! emptyempty( $wp_http_get['body'] ) ) {
$trans_result = json_decode( $wp_http_get['body'], true );
$trans_title = $trans_result['trans_result']['data'][0]['dst'];
return $trans_title;
}
}
return $title;
}
add_filter( 'sanitize_title', 'qgg_translate_cn_post_title_to_en', 1 );
这段代码是我在编辑文章时通过百度翻译自动将文章别名翻译成英文的。简单看一下,代码应该没什么大问题,主要是因为网站在加载时需要请求百度翻译。加载速度变慢,删除此代码后,再次刷新网站页面,一切正常!查看控制台如下:
虽然页面加载不是特别快,但仍然在2秒内,问题就解决了。