商略网络,专注中小企业网站建设,为您的网站量身定制!
您当前的位置:首页 > 动态 > 建站知识

南海专业做网站 :大型网站建设,高性能流水线技术网页

商略建站发表于 : 2019-07-12 17:39:09  来源:  分类:建站知识

  • 摘要:  大型网站建设最为关注的问题是网站建设的速度,这已成为大型网站建设企业的主要任务之一。   Facebook的网站速度是最关键的企业任务之一。2009年,我们成功地将Facebo
  大型网站建设最为关注的问题是网站建设的速度,这已成为大型网站建设企业的主要任务之一。
  
    Facebook的网站速度是最关键的企业任务之一。2009年,我们成功地将Facebook的速度提高了两倍。这是我们工程团队的关键创新,使之成为可能。在本文中,我将介绍我们的秘密武器之一,我们称之为BigPipe的伟大基础技术。
  
    BigPipe是一个经过重新设计的基本动态Web服务系统。其基本思想是将Web页面分解成称为pagelets的小块,然后通过Web服务器和浏览器构建管道,并在不同的阶段管理它们的操作。这是一个类似于大多数现代微处理器的管道执行过程:每个通过不同的处理器执行单元形成最佳形式。虽然bigpipe是对现有服务网络基础设施流程的重新设计,但它不需要更改现有的网络浏览器或服务器,而是使用php和javascript完全实现。
  
    动机
  
    为了更好地理解BigPipe,我们需要了解现有的动态Web服务系统,它可以追溯到万维网的早期,但与早期相比没有太大的变化。现代网站比10年前更具动态性和互动性,但是传统的Web服务系统已经很长时间没有被广泛应用。能够跟上当今互联网速度的要求,在传统模式下,用户请求的生存期如下:
  
    1。浏览器向Web服务器发送HTTP请求。
  
    2。Web服务器解析请求,读取数据存储层,开发一个HTML文件,并用HTTP响应将其发送给客户机。
  
    三。HTTP响应通过Internet传输到浏览器。
  
    4。浏览器解析Web服务器的响应,使用HTML文件构造一个DOM树,并下载引用的CSS和JavaScript文件。
  
    5。下载完CSS资源后,浏览器会对其进行分析,并将其应用于DOM树。
  
    6。下载完javascript资源后,浏览器会解析并执行它们。
  
    传统方式在现代网站中效率很低,因为许多系统在操作顺序上不能相互重叠。一些优化技术,如延迟加载JavaScript和并行下载,已经被网络社区广泛采用,以克服一些限制。然而,这些优化很少涉及由Web服务器和浏览器的执行顺序引起的瓶颈。当Web服务器忙于生成页面时,浏览器处于空闲状态,浪费了周期。当Web服务器完成生成页面并将它们发送给浏览器时,浏览器成为性能瓶颈,而Web服务器无法控制。重叠的Web服务器和浏览器的渲染时间不仅可以减少最终的时间延迟,而且可以使网页更早地向用户显示用户的可视区域,从而大大降低了用户对延迟的感知。
  
    Web服务器与浏览器呈现时间重叠,这尤其有用,例如内容丰富的Facebook。典型的Facebook页面包含来自许多不同来源的数据:朋友列表、朋友动态、广告等。传统Web呈现模式下的用户将不得不等待,直到返回这些查询数据和fin生成所有文件,然后将其发送到用户的计算机。任何查询延迟都会减慢整个最终文件的生成。
  
    bigpipe如何利用Web服务器和浏览器之间的并行性,首先bigpipe将Web页面分解为几个可调用的页面。正如管道微处理器将指令的生命周期划分为几个阶段(如获取指令、解码指令、执行指令、回写BigPipe的页面生成过程分为以下几个阶段:
  
    1。请求解析:Web服务器解析和完整性检查的HTTP请求。
  
    2。数据采集:Web服务器从存储层检索数据。
  
    三。标记生成:Web服务器生成的响应的HTML标记。
  
    4。网络传输:响应从Web服务器传输到浏览器。
  
    5。下载CSS:浏览器下载网页的CSS要求。
  
    6。dom树结构和css样式:浏览器构造了dom文档树,然后应用其css规则。
  
    7。在javascript中下载:浏览器从网页下载javascript引用的资源。
  
    8。javascript执行:浏览器的网页执行javascript代码。
  
    前三个阶段由Web服务器执行,后四个阶段由浏览器执行。每个pagelet必须经历所有这些阶段,但bigpipe会使多个pagelet在不同阶段同时执行。
  
    (Facebook主页的页面,每个矩形一个。)
  
    上图以Facebook主页为例,说明如何将网页分解为页面。主页包括几个页面:作者页面、导航页面、新闻动态页面、请求框页面、广告页面、朋友推荐和联系人,它们彼此独立。当导航页面ET显示给用户,新闻动态页面仍然可以在服务器上生成。
  
    在BigPipe中,用户请求的生命周期是这样的:在浏览器中向Web服务器发送一个HTTP请求,在接收到HTTP请求并对其进行全面检查后,Web服务器立即返回一个未关闭的HTML文件,包括一个HTML标记和标记的开始标记。标记包括BigPipe的javascript库。要分析以后接收到的答复,请执行以下操作。在标记中,有一个模板指定了页面和pagelets占位符的逻辑结构。例如:
  
    呈现后的第一个响应是对客户端的响应。Web服务器继续逐个生成页面。只要生成一个pagelet,它就会在json编码的对象中立即刷新到客户端,包括所有的css、javascript 南海专业做网站 南海专业做网站 pagelet、它的html内容和元数据所需的一些资源。例如:
  
    当客户端通过onpagelet接收到pagelet的指令时,bigpipe的javascript库将首先下载其css资源;当css资源被下载时,bigpipe将在pagelet的标记html中显示其innerhtml。可以同时下载多个pagelet的css,并根据完成各自的css下载。在bigpipe中,javascript资源的优先级低于css和页面内容。因此,bigpipe不会在显示所有pagelet之前从任何pagelet下载javascript。然后,从javascript异步下载所有pagelet。最后,pagelet的javascript初始化代码确定根据各自下载的完成情况,输入执行顺序。
  
    这种高度并行系统的最终结果是多个Pageletsr执行阶段同时发生。例如,当服务器正在生成新的Pagelet时,浏览器可以下载三个Pagelet s CSS资源,同时显示另一个Pagelet s内容。从用户的角度来看,页面是逐步呈现的。页面的帐篷将显示得更快,这大大减少了用户对页面延迟的感知。如果您想亲眼看到差异,可以尝试以下链接:传统模式和BigPipe。第一个链接是传统的单模式显示页面。第二个链接是BigPipe Pipe Pipe模式页面。如果您的浏览器版本是on越旧,网络速度越慢,浏览器缓存效果越差,那么两个页面之间的截取时间差异就越明显。
  
    性能测试结果
  
    下面是对传统模式和BigPipe性能数据的比较,后者是用户对页面上最重要的内容的感知延迟的75%(例如,新闻动态被认为是Facebook主页上最重要的内容)。图表显示BigPipe将用户在大多数浏览器中的延迟减少了一半。
  
    (Facebook主页的延迟时间比较)
  
    值得一提的是,bigpipe的灵感来自于南海专业做网站微处理器的流水线,但是它们的流水线进程之间存在一些差异,例如,尽管bigpipe在大多数阶段只能运行一次pagelet,但有时多个pagelet的css和javascript下载可以同时运行,类似于超标量微处理器。bigpipe的另一个重要区别是我们已经实现了从并行编程引入的屏障的概念。所有页面必须完成一个特定的阶段,例如多个页面显示区域,这些区域可以在javascript中进一步下载和执行。
  
    在Facebook上,我们鼓励创造性思维。我们不断尝试创新技术,以使我们的网站更快。姜长浩目前是Facebook的研究科学家,他正在致力于创新,以使网站更快。(翻译还发现了几篇关于BigPipe的文章)。如果你感兴趣,你可以知道:脸谱网的创新大管:优化页面加载时间,脸谱网独特的页面加载技术,脸谱网的BigPube技术分析,脸谱BigPube在Java中完成,打开BigPube JavaScript实现,教程:使用ASP.NETMVC实现脸谱网的BigPipe,在Boo.js中完成BigBube。
  
    最后一条:谈专业网站制作中的CSS3
  
    下一项:专业版DIV+CSS网站公司讨论什么是Web标准
  
  
本文由商略网络整理编辑:南海专业做网站 :大型网站建设,高性能流水线技术网页
地址为:https://www.3lue.cn/news/jianzhanzhishi/4099.html