明月登楼博客的文章,做个备份方便检索资料。
最近碰到几个需要帮助部署 CloudFlare 的客户,有境内站点也有境外站点,期间就发现境内和境外站点接入 CloudFlare 后 Rocket Loader 的效果有很大的差异,特别是在站点访问速度上比较明显,所以今天明月就给大家讲讲使用 CloudFlare 要不要关闭 Rocket Loader 的问题。
通过 CloudFlare 官方的介绍我们可以知道Rocket Loader 可缩短包含 JavaScript 的页面绘制时间。
所以理论上开启 Rocket Loader 是有利于页面加载速度的提升的,但因为 CloudFlare 的 IP 节点都是境外的加上 Rocket Loader 会在页面里引用ajax.cloudflare.com
和cdnjs.cloudflare.com
这两个站外 JS 库,这就会造成国内站点在引用这两个 JS 库的时候加大了页面延迟时间,加速的好事儿变成了拖慢速度的坏事儿了,所以CloudFlare 的 Rocket Loader 并不适合国内站点,或者说不适合国内访客。但我们可以更加灵活的来对待这个事儿:
因此,国内站点使用 CloudFlare 的话不建议开启这个Rocket Loader的,关闭即可。如果你的站点有国内外的访问需求,也可以借助 CloudFlare 里【规则】——【Configuration Rules】里配置规则在边缘和服务器进行区别对待:
原理很简单,就是在【Configuration Rules】里创建两个规则根据“国家地区”判断国内访客一律禁用Rocket Loader ,国外访客开启Rocket Loader。
发现 CloudFlare 的规则设置真的是太灵活、太强大了,就看你如何活学活用了,完全可以根据自身站点的需要灵活的定制一套专属的 CloudFlare 配置。