我的博客搭建之速度优化

  • 文章
  • 作者:Hubery
  • 发布时间:2020-05-22
  • 阅读数:190
  • 分类:博客搭建
  • 标签: 前端

我的博客目前是在阿里云的最低配的ECS服务器上,带宽只有1M,可以说是很弱鸡了。因此我对博客进行了一波优化。

1、后端优化:目前的策略是整个页面进行缓存,缓存时间是24小时,也就是说一天更新一次。缓存时间比较长,那么就涉及一个更新缓存的策略,因为当文章更新和提交评论时,需要实时显示的,因此需要判断,当进行文章更新和评论提交时,更新缓存。我是在Django的中间件处进行判断更新的,下面是代码片段。

class CleanCacheMiddleware(MiddlewareMixin):
    """当访问当路径包含 xadmin/blog 且method 方法为post时,清空首页缓存"""
    def process_request(self, request):
        if re.match( r'^.*xadmin.*$', request.path) and request.method == "POST":
            key = 'PageCache-%s' % '/'
            cache.delete(key)

        #  提交评论时 更新阅读页缓存
        if re.match(r'^.*comments/post.*$', request.path) and request.method == 'POST':
            data = request.POST.copy()
            key = 'PageCache-%s' % data.get('next', '')
            cache.delete(key)

2、前端优化:通过分析网站的资源加载,发现有几个js文件加载速度比较慢,因此这里使用免费的cdn进行加速。但是cdn服务是不可控的,当提供商服务出错时,那么就会影响到我们的网站。所以我们需要配置备用选项,我这里主要使用了jquery和layui。下面是配置代码。

jquery:

<script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<script>
    if (!window.jquery){
        var script = document.createElement('script');
        script.src = "path/to/localhost/jquery.js";
        document.head.appendChild(script);
    }
<script/>

layui:

<script src="https://www.layuicdn.com/layui-v2.4.5/layui.js"></script>
<script>
if (typeof layui === 'undefined') {
    var sc = document.createElement('script');
    script.src = "path/to/localhost/layui.js";
    document.head.appendChild(sc);
    }
</script>

其中判断某个js是否存在有两种方式,也就是上图中的,一种是判断利用window对象。

依据:

  • 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

  • 全局变量是 window 对象的属性。

  • 全局函数是 window 对象的方法

另一种是根据typeof 判断变量的类型,如果未引入,那么该对象就是undefined。


其中博客当中涉及的图片放到图床当中也能加快加载速度,但是考虑到免费图床的不稳定性,没有做这块的优化,目前图片放在服务器当中。




评论列表
优秀的你不评论一下咩!!
新的评论