保华的Rails学习笔记

前端优化的一些问题

1.为什么要将 CSS 放在最顶层,将 JavaScript 放在最底层?
网页在打开的时候,是先下载HTML代码的,如果CSS放在最前边,即放在head里边的话,可以先下载下来,我们知道,CSS是控制网页的样式的,当CSS下载完以后,页面的样式可以呈现出来了,如果CSS放在中间或者后页,那么网页打开的时候,可能先是一片乱乱的,然后下载到CSS代码的时间才正常,这显然是不合理的

而JS一般都比较肥大,如果我们将JS代码放在head里边的话,会很耽误下载速度的,JS一般来说是实现某些功能的特效之类,甚至有的时候,还要用户点击什么的,所以把它放在后边,等网页通过CSS完美呈现出样式时,再加载JS,对用户来说,基本没什么影响的

2.如何尽可能减少HTTP Requests?
浏览器每次向服务器发出请求,都是需要打招呼时间的,所以如果我们把JS合并到一个文件中,把CSS合并到一个文件中,那么可以减少请求次数,这样就可以提高网页的加载速度,这部分功能rails已帮我们实现,它是通过rake assets:precompile来实现的,我们可以打开网站(heroku上边的,它是经过rake assets:precompile处理过的),查看源代码,可以看出来,确实处理了


我们可以看到,JS处理到一个文件了,CSS也放到了一个文件,当我们点击开这些文件时,发现里边的代码是经过压缩了

也就是空白行都消失了。这样可以减少页面的体积,可以提高网站的响应速度

3.CDN是什么?请用自己的话解释
CDN就是根据用户所在的地区,从而选择为用户服务的服务器,例如广东用户,就选择广东这边的服务器来给用户提供服务,这样可以大大提升用户打开网站的速度,例如网站有许多图片,这些图片,在每个地区都存一份,广东服务器存一份,北京服务器存一份,当广东用户打开网站的时候,是广东服务器提供的下载服务,同理,北京的用户打开网站时,就是北京的服务器给这位用户提供下载服务,如果北京服务器没存,那北京服务器就会请求主服务器给它一份,以后北京的用户再访问时,就由北京的服务器来提供服务

4.如何提升自己的网站加载速度?
主要有前端优化与后端优化
前端优化我们可以做的有,把CSS放在head标签里边,把js尽量放在页面的后边
把CSS合并成一个文件,把JS合并成一个文件,这两步rails通过rake assets:precompile
已经帮我们做了
可以启用CDN服务
网站的用户在哪里比较多,主服务器,就放在那个地区