💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 前端优化 这里的前端优化目的是提高页面的加载速度,提升可访问性。使用的方法和针对的有如下方面: ### 静态资源(css,js,images,html)文件 在前面的某些章节已经涉及到图片优化,其实针对CSS,JS,HTML文档的优化也是一样道理,压缩这些文件。可以使用的工具: 1. [FileOptimizer](http://sourceforge.mirrorservice.org/n/ni/nikkhokkho/FileOptimizer/)(速度较慢) 2. sublime插件(Sublime-Minifier) (https://github.com/bistory/Sublime-Minifier)(需要搭配sublime) 3. 第三个可以在服务器端配置pagespeed,通过服务器的能力实现静态资源优化,无需在长传服务器前做优化(https://chaihongjun.me/os/linux/146.html) ### 服务端升级压缩模式增加`brotli`压缩模式 使用前提是服务器端使用的是`https`协议发布(https://chaihongjun.me/os/linux/185.html) ### 部署CDN 如果已经升级到`https`,则推荐使用又拍云联盟(https://www.upyun.com/league),可以保证https协议也使用CDN ### 代码端优化 1. 使用预加载等技术 ~~~ <link rel="dns-prefetch" href="//example.com"> <link rel="preconnect" href="//example.com"> <link rel="prefetch" href="image.png"> <link rel="prerender" href="//example.com"> <link rel="preload" href="image.png"> ~~~ 参考资料:https://css-tricks.com/prefetching-preloading-prebrowsing/ 2. 减少http(s)的请求数量 将图片合并为雪碧图,小尺寸图片转化为base64编码等操作 3. 其他操作 影响页面加载的脚步放置在页面的底部等. 以及为了增加并发能力,将静态资源分布部署在不同的域名下,比如`css.example.com`,`js.example.com`,`img.example.com`等等 4.增加一个视口内内容预先加载**`quicklink`** 项目地址:[https://github.com/GoogleChromeLabs/quicklink](https://github.com/GoogleChromeLabs/quicklink) 配置方式很简单,直接在公共库文件内引入 > [https://unpkg.com/quicklink@1.0.0/dist/quicklink.umd.js](https://unpkg.com/quicklink@1.0.0/dist/quicklink.umd.js) 这个项目的文件内容,然后再写入配置内容: ``` //初始化 quicklink window.addEventListener('load', () =>{ quicklink({ //启动fetch priority:true, //过滤掉的内容 ignores:[ /baidu/, /kuaishang/, uri => uri.includes('.php'), ], // 本域名或者跨域的域名,当前本域名一定要写 origins:[ 'm.example.com', 'www.example.com', 'uploads.example.com', 'js.example.com', 'css.example.com', 'img.example.com' ] }); }); ``` ### 静态资源禁止发送cookie 请求静态资源发送cookie的由来是因为同域名下面的任何内容都会在HTTP头部请求中加载cookie信息。然而静态文件(图片,JS,CSS)携带cookie没有任何的意义,反而请求了过多无效的内容。所以,禁止静态资源的HTTP请求携带cookie也是优化页面的一个方向。 具体做法可以参考: > [http://ju.outofmemory.cn/entry/27052](http://ju.outofmemory.cn/entry/27052) 按照上述内容描述方法就是给静态资源单独设置一个域名,当然,还可以做的更极致,针对图片,JS和CSS分别设置3个或者更多的域名(cookie-free)用来请求图片。