Open tonyzheng121 opened 7 years ago
// server.js var express = require('express'); var compress = require('compression'); var app = express(); app.use(compress());
对于一般的SPA项目,如果node服务器的作用比较简单,比如只是做个接口转发之类的,很多人更倾向用Nginx作服务器,Nginx在转发接口、压缩、缓存等功能上更胜一筹。不过,大部分前端对Nginx应该陌生一些,为了实践技术,用熟悉的node即可,真正的项目部署,有专业的实施人员来搞。
设置Http Header里面缓存相关的字段,做进一步的优化。
express里面也有对静态资源相关的设置,只不过平时没怎么注意:
可以设置etag、maxAge等,进一步会有200缓存和304缓存的区别:
200 OK (from cache) 是浏览器没有跟服务器确认,直接用了浏览器缓存;而 304 Not Modified 是浏览器和服务器多确认了一次缓存的有效性,然后再使用的缓存。
相关的讨论可以参考 知乎:阿里云存储如何让浏览器始终以200 (from cache)缓存图片?
这种优化因问题而异吧,最重要的是善于使用Google DevTools里面的Performance面板和Memory面板去分析、查找问题,进而找到优化的点。
减少HTTP请求
使用雪碧图:设置背景图尺寸大小,感觉很麻烦,而且雪碧图的维护也不怎么便利,好像使用率越来越低了,都被iconfont取代了减少静态资源的体积
对于一般的SPA项目,如果node服务器的作用比较简单,比如只是做个接口转发之类的,很多人更倾向用Nginx作服务器,Nginx在转发接口、压缩、缓存等功能上更胜一筹。不过,大部分前端对Nginx应该陌生一些,为了实践技术,用熟悉的node即可,真正的项目部署,有专业的实施人员来搞。
使用缓存
设置Http Header里面缓存相关的字段,做进一步的优化。
express里面也有对静态资源相关的设置,只不过平时没怎么注意:
可以设置etag、maxAge等,进一步会有200缓存和304缓存的区别:
相关的讨论可以参考 知乎:阿里云存储如何让浏览器始终以200 (from cache)缓存图片?
内存溢出
这种优化因问题而异吧,最重要的是善于使用Google DevTools里面的Performance面板和Memory面板去分析、查找问题,进而找到优化的点。