针对利用 Github 做静态网站的访问速度优化思考

 北邮人站长   2016-12-06 19:52   330 人阅读  0 条评论

前天网上更新的专栏里,有用户留言反映网站加载速度慢:



当然这早已经不是第一次有人提到了,我自己在网站搭建上线之初就知道,这个访问速度的问题可能会长期存在。



(基础背景:文科生一枚,对技术感兴趣,但并不深入,所以不成熟之处,还请帮忙指出,以及提出其它更好的建议或者解决办法)


基础案例信息

网址:北邮人导航 :http://byr.wiki

Github 项目地址:byrwiki/byrwiki.github.io

案例说明:

  • 因为做这个页面的初衷是开源,方便其它人进行优化迭代,同时也算是把 Github 当做免费的托管站点,而且也还能充分利用其相关功能,如 Wiki、Commit 等。

  • 但项目上线之后,发现自己访问时,也经常会受限于网络环境和宽带运营商。对于老用户而言,第一次打开之后,会有缓存,之后再访问可能会快些;但对于新访客而言,较长的加载速度无形中就让他们失去了耐心,以及对页面的兴趣,基本上就可以代表流失了。

  • 对于一个导航网站而言,或者说入口页面,访问速度真的能够决定很多。


存在问题




基本上用 Github 搭建站点的所有国内用户,基本上都会有加载速度缓慢且不定期异常的问题。

1,Github 的服务器是在国外;

2,曾经 Github 被和谐过一段时间,但即使后来恢复了,总的访问是较慢的;

3,用户所在的宽带运营商不同,在国内不同地区的访问速度也存在较大差异;



尝试过的改进:

那么问题来了,既想要继续利用 Github 的相关特色服务,又想尽可能的提升访问速度,该怎么办呢?

1,关于网上提到的修改本地 Host 文件方案。



不适用于大多数人,如果是自己平常要用 GitHub ,修改之后确实有效果,但多数访问网站的用户,不懂这些,也不想懂这些,他们只想访问得更快点。

2,针对访客的 IP 自动判断其是国内、还是国外用户,然后分别设置访问的路径(国内则是镜像、国外则是 Github)。

之前有过这样的想法,后来在知乎上扒了下,发现较难实现。(部分内容稍后补充)

3,利用 CDN 加速。

测试效果失败,利用知乎某用户回答里提供的方案,实践之后发现效果并无明显改善。

4,修改页面需要加载的本地元素路径,改为访问国内服务器资源,包括样式文件。



这个是目前网站真在使用的方案,准确的说,是昨晚刚这样做的。把网站的最新源码同步上传了一份到阿里云的服务器上,然后再替换相应的本地资源路径,以提升部分响应速度,目前来看打开速度还不明显,需要观察一段时间。



5,在页面中做相关的提示说明,告知用户访问缓慢的备选方案。

前面提到的几点,都是从技术层面,这点的话,则是从运营层面去考虑的。



如图所示,在新的网站描述文案中,增加了一段说明:



如果打开缓慢或者无法加载,请访问简洁版 so.byr.wiki/

提供 Plan B,以尽可能的减少用户的流失,给用户留下好的印象。因为简洁版的源码放在国内的服务器里,所以用户访问的速度基本是快很多的。

6,提供一个过渡页面。

页面加载时不先访问首页文件,而是过渡页面,页面中进行相关提示,告知用户如果无法打开页面或者加载缓慢,点击简洁版的链接进行访问,或者等候几秒钟,自动调整到简洁版的页面。这个方案目前仅在构想中,暂无实施。


其他疑问

1,为什么不直接把源码放在国内,这样用户访问的速度不就更快了吗?

可能其它域名合适,但 Wiki 域名目前不支持备案的,所以你懂的。



最后

技术层面和运营层面都相配合是比较好的。

以前的时候,并没有觉得运营一个网站很难,或者说需要考虑这么多。现在越来越明白,网站到后期,随着访问量、用户量等的增多,对技术的要求难度越高,需要考虑的因素也较多,各种可能的不可控因素都将导致网站异常崩溃,在硬件和软件层面都多需要有战略眼光才行。


本文地址:http://beiyouren.zhangxingqiu.cn/blog/?id=12
版权声明:本文为原创文章,版权归 北邮人站长 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?