现在一些大型IT公司都在搞页面静态化,我在这里给大家分享下我的理解,希望对看了这篇文章的IT工程师们有点作用。
我在这里科普下知识,我们通常访问的页面有两种一种是静态页面[纯观赏,没有什么功能],一种是动态页面[与服务器数据库之间产生交互];
我所讲的问题就是将动态页面静态化,然后发送给客户端。可能有人会问为什么要这么做,如果对web开发有一定了解,你就会知道,经常访问数据库会给服务器带来很大压力,而且响应速度也会慢很多。
下面就页面静态化原理来做个分享,提高一个项目的性能,尤其是对阿里,京东等这样大公司来说尤其重要,因为他们的访问量很大,大年三十很多人登录手机淘宝超时,可见性能的重要性。废话不多说,要想将页面静态化,我们必须要得到一个io流让它来将我所指定的动态页面静态化,那么到底用哪个流来实现呢,谁来帮我们实现呢?其实这里不用想,一定是服务器来做这件事情。因为只有它才知道什么时候处理请求。我们可以通过过滤器filter来对请求进行拦截,一个请求中必然会带有一个响应流,它直接与客户端相连,用于输出响应内容!如果我们可以偷梁换柱,将这个流变为向我们指定的路径输出响应内容,然后再把这个本地资源重定向到客户端,是不是就可以实现页面静态化呢?如果你对装饰者,动态代理设计模式有一定了解,那么就自己动手实现一个动态页面转静态化页面吧!当然你还需要注意很多细节问题比如编码,获取文件真实路径,判断请求资源是否已经被静态化等问题。
应用场景:静态化那么好,我们就全部静态化吧!其实也有很大局限的,经常需要变动的页面,是不适合做静态化的,不利于数据的实时一致性。
分享也是进步的一种途径,我一直在学习的路上等你,少年感永在!世界的未来就在我们努力的前方!
网友评论