如何提高网页的加载速度?
如何提高网页的加载速度?
周大老板很高兴,“国内像朋友网这样的大站还有不少,比如QQ空间,那皮肤设计的花里胡哨,加载进去得10秒钟。还有淘宝,那么多商品图片,想打开网页也非常缓慢。咱们要帮帮同行啊!”
张一明泼了冷水,“这事没那么容易,涉及到很多方面。”
“怎么回事?”
“这事技术委员会讨论过,可以让搜索业务、浏览器业务跟朋友网同步进行,三个项目同时启动,彼此联动。可项目资金有点大,被否了。”
然后,张一明就简单的解释了这其中的原理。
网页的加载过程,背后的逻辑并不简单。
用户需要通过浏览器,跟网站进行“握手”互动,获得网站许可了,就进入网站服务器,提取其网站数据。
然后把数据渲染出来,就变成呈现在用户屏幕前的网页了。
提取的数据,如果是线性的,那么网线的呈现方式就是一个模块接着一个模块的传统方式。如果并行的提取,是分布式的,网站的加载就可以像瀑布那样的从上到下,很迅速。
可这技术别人都没有。
而且,这也只是网页加载提速的一部分。
这个过程中,浏览器需要跟网站履行一系列的网络协议,三次握手、四次握手,协议达成了之后,才能开始提取数据。
过程太繁琐。
如果能简化这个流程,网页加载速度就能提高。
还有,浏览器和网站服务器是顺序、线性执行的关系,服务器必须等待浏览器的请求,这样就会造成服务器的空闲。浏览器工作时,服务器在等待,而服务器工作时,浏览器在等待,这也是一种时间上的浪费。
假如双方能同时工作、并行工作,就可以提高速度。
并行就是分布式。
第三点,用户在使用网站的过程中,就是浏览器和网站服务器交互的过程,这个期间需要不停的发送信号,浏览器申请、服务器允许,申请、允许,申请、允许……不停的握手,不停的交互。
如果把后续的这些过程尽可能的省略,减少服务器发送请求,就可以大大的节省网站服务器的负载,带来性能上的提升……
周不器听得云山雾罩,可大体上是听懂了。
就是网页的读取过程太复杂,背后涉及到太多的网络协议。要想改变这种情况,除了改善网站自身的信息供给方式外,就要修改旧的网络协议,或者想办法通过技术手段绕开。
张一明道:“目前是web2.0时代,核心技术是AJAX,有一定的技术门槛。现在的主流网站,一般都使用这个技术。盗版网站之所以加载速度慢,除了服务器差之外,很大原因是没有这个AJAX。”
“哦。”
周不器呆呆地。
张一明又道:“可是随着时代的发展,AJAX技术也有些跟不上时代。有数据统计过,打开一个网页,平均要耗时4.5秒钟,这太难以接受了。必须出现新的技术手段替代传统方案,分布式就是机会。”
周不器对技术很感兴趣,可是又听不太懂,很有一种清晨看黄山的感觉,雾茫茫的一片美好,宛若仙境。
这大概就是外行的好处。
因为离着远,所以觉得特别美好,就心甘情愿地愿意买票进场。要真是内部人士了,知道登山那么难,恐怕白给他门票,都懒得去参观。
除非是真正的登山爱好者,有着发自内省的兴趣和追求。
“你就说怎么做吧?”
“这次一共申请了9个相关的项目,我觉得这朋友网、搜索和浏览器的这三个项目,有必要尽快启动。”
“哦?”
“朋友网这个说过了,搜索的项目……就是微点搜索做的一个网站优化。传统的打开网页的方式,是浏览器直接去网页服务器采集数据,这个过程中有大量协议。如果让微点搜索组建一个部门,把网站备份过来。用户在使用微点搜索的时候,就不需要再去访问网站服务器了,而是直接可以从我们的备份库中读取,就相当于绕开了协议。”
周不器试探着说:“也节省了从搜索引擎向外站跳转的时间?”
张一明笑道:“对!用户使用微点搜索,其实就进入了微点的服务器。直接在微点的服务器里读取备份的网页,效率就更高了。”
周不器点了点头,“嗯,有意思。”
张一明道:“很多网站技术不够,做不到分布式。可把备份放在微点的服务器里,就可以分布式读取了。速度就更快了。而且,还有商业化前景。”
“是吗?”
“可以跟网站合作,作为微点的一种推广服务。商家肯定也希望自己的网站能够更快地呈现在用户的电脑屏幕前。他们的技术不够,就可以跟微点合作,交一笔钱,把网站文本信息备份在我们的服务器里,相当于我们帮他们做优化。