Node

优点:
因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求;
因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好很多。
此外,与Node代理服务器交互的客户端代码是由JS语言编写,因此客户端和服务器端都用同一种语言编写。

缺点:
Node是一个相对新的开源项目,所以不太稳定,总是一直在变,而且缺少足够多的第三方库支持。

1、减少HTTP请求次数:CSS SpritesJSCSS源码压缩、控制图片大小;网页Gzip,CDN托管,data缓存,图片服务器
2、前端模板:JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
3、用innerHTML代替DOM操作,减少DOM操作次数,优化JS性能
4、当需要设置的样式很多时,设置className而不是直接操作style
5、少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。
6、避免使用CSS表达式,又称动态属性
7、图片预加载,将样式表放在顶部,将脚本放在底部,加上时间戳
8、避免在页面的主题布局中使用tabletable要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢。

对普通的网站有一个统一的思路,就是尽量向前端优化、减少数据库操作、减少磁盘IO读写。
向前端优化指的是,在不影响功能和体验的情况下,
能在浏览器执行的不在服务器端执行,
能在缓存服务器上直接返回的不要到应用服务器执行,
程序能直接取得的结果不要到外部取得,
本机内能取得的数据不要到远程取得,
内存能取到的不要到磁盘上取,
缓存中有得不要去数据库查询。

减少数据库操作,指的是减少更新次数、缓存结果减少查询次数、将数据库执行的操作尽可能的让程序完成(例如join查询),
减少磁盘IO指尽量不适用文件系统作为缓存、减少读写文件次数等。