对首屏速度优化的一些经验。
GZIP压缩
无论是宝塔还是appnode,都自带了gzip压缩这一功能,相对于appnode,前者明显将gzip的设置藏的更深一些,各位可以在软件商店-nginx-性能调整中找到gzip的相关设置。
[PIC1]
[/PIC1]
appnode的话我就没有办法附图了,毕竟我现在已经转战宝塔了。
首页静态化
我放弃了redis等缓存拓展,选择了最粗暴的首页静态化脚本。 请将以下代码新建粘贴到cache.php文件中即可
<?php
/**
* 首页静态化脚本
* Author: Yusure
* Blog: yusure.cn
*/
ini_set( 'date.timezone', 'PRC' );
/* 缓存过期时间 单位:秒 */
$expire = 86400;
/* 主动刷新密码 格式:http://test.com/build_index.php?password=123456 */
$password = '123456';
$file_time = @filemtime( 'index.html' );
time() - $file_time > $expire && create_index();
isset( $_GET['password'] ) && $_GET['password'] == $password && create_index();
/**
* 生成 index.html
*/
function create_index()
{
ob_start();
include( 'index.php' );
$content = ob_get_contents();
$content .= "\n<!-- Create time: " . date( 'Y-m-d H:i:s' ) . " -->";
/* 调用更新 */
$content .= "\n<script language=javascript src='cache.php'></script>";
ob_clean();
$res = file_put_contents( 'index.html', $content );
if ( $res !== false )
{
die( 'Create successful' );
}
else
{
die( 'Create error' );
}
}
作者来源我就不再次注明了,代码中已经体现。
分离首页和文章CSS和JS
有利有弊,会小幅度降低进入文章时的访问速度,但却可以大幅度提升首屏速度。 举个例子,将灯箱,jQuery,文章排版css都单独列出来,然后在文章页面单独引用。 假设A主题的footer.php在首页引入了jQuery和灯箱,代码高亮等功能的样式文件,复制footer.php的原内容,再新建一个footer2.php,将上述内容都粘贴到这里,然后再回到footer.php删除jQuery和灯箱,代码高亮等的调用即可。 关于分离文章排版的css,这个其实很有难度的,但大部分作者会留有注释,或者单独一个部分是文章排版,如果是堆在一起的那就麻烦死了,除非真的很喜欢这个主题也想提升速度建议不要进行这项操作。
P.S 小白如何找到哪些是关于文章排版的内容呢? 一是看作者标的名字,二是通过修改CSS看看对排版的影响,当然后者是很傻的一种方式啦,使用chrome自带的功能会相对好些。
缩略图存至云存储
所有缩略图直接扔到七牛云存储,嫌麻烦的可以试试Typecho的七牛插件。
样式文件存至云存储
同上,部分主题支持了该功能,具体的操作可以看看以前这篇 Typecho优化【主题】
DNS预加载
使用DNS Prefetching也就是dns预加载 直接使用link标签即可
<link rel="dns-prefetch" href="这里改成云存储地址等">
简化首页输出内容
在index.php中找到
<?php $this->excerpt(200, '...'); ?>
把200改成80-150#字太少看着别扭 或者直接删掉这段 不输出摘要 当然,有些主题是默认全文输出的,比如我现在正在用的这个,记得要善用标签奥。
套CDN
说完本机优化,就该说说CDN这些了。 一方面是因为本机是国内小水管,一方面因为怕被打,最后还是选择了套个CDN。 经过我个人测试之后使用七牛CDN的延迟,访问速度,都跟本机速度相差不大,有时候还会更快。 (仅是我这里快啦,之后被告知他们进去都要好几秒,所以要善用全国测速啊hhh)
更好的解析服务
我个人选择的是DNSPod的解析服务,毕竟,9元一年的个人专业版太香了(不买也可以用
增大TTL值
可以减少域名的解析时间~不过太大的话等你换IP的时候就要等很久了…
P.S 你解析的时候可以看到它,不知道是什么东西的话可以去百度看看。