CN111708594A - 页面渲染方法、装置、电子设备及存储介质 - Google Patents
页面渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111708594A CN111708594A CN202010526317.4A CN202010526317A CN111708594A CN 111708594 A CN111708594 A CN 111708594A CN 202010526317 A CN202010526317 A CN 202010526317A CN 111708594 A CN111708594 A CN 111708594A
- Authority
- CN
- China
- Prior art keywords
- rendering
- node
- page
- target
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开关于一种页面渲染方法、装置、电子设备及存储介质,属于互联网技术领域。方法包括:当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
Description
技术领域
本公开涉及互联网技术领域,特别涉及一种页面渲染方法、装置、电子设备及存储介质。
背景技术
在终端显示某个网页页面时,一般由渲染服务器从网页服务器中获取该网页页面的渲染数据,根据该渲染数据进行页面渲染,得到页面数据,将页面数据返回给终端,由终端基于该页面数据显示该网页页面。
渲染数据包括静态资源和动态资源。静态资源在一段时间内是不变的,网页服务器不需要在每次接收到网页获取请求时都采集;而动态资源是实时变化的,网页服务器需要在每次接收到网页获取请求时都采集。为了提高渲染效率,渲染服务器在接收到某个网页页面的静态资源时,可以在本地缓存该网页页面的静态资源,等下次其他终端请求渲染该网页页面时,可以获取本地存储的该网页页面的静态数据,只从网页服务器中采集该网页页面的动态资源,从而节省网络带宽,提高渲染效率。
上述相关技术中,只有配置了缓存功能的网页渲染服务器才能缓存静态资源,而对于无法配置缓存功能的渲染服务器,仍然无法实现缓存静态资源。
发明内容
本公开实施例提供了一种页面渲染方法、装置、电子设备及存储介质,能够实现缓存资源共享。所述技术方案如下:
根据本公开实施例的一方面,提供了一种页面渲染方法,所述方法包括:
接收终端的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
根据所述页面标识,确定用于处理所述第一渲染请求的目标缓存节点的节点标识;
根据所述节点标识,向所述目标缓存节点转发所述第一渲染请求,所述目标缓存节点用于根据所述页面标识,从本地缓存中获取所述目标页面的第一静态资源和从网页服务器中获取所述目标页面的动态资源;
接收所述目标缓存节点返回的所述目标页面的第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源;
根据所述第一渲染数据,对所述目标页面进行渲染。
在一种可能的实现方式中,所述根据所述页面标识,确定用于处理所述第一渲染请求的目标缓存节点的节点标识,包括:
根据所述页面标识,确定所述页面标识对应的第一哈希值;
根据所述第一哈希值,从节点链表中确定目标位置节点,所述目标位置节点用于存储所述目标缓存节点的节点标识;
从所述目标位置节点中获取所述目标缓存节点的节点标识。
在另一种可能的实现方式中,所述根据所述第一哈希值,从节点链表中确定目标位置节点,包括:
根据所述第一哈希值,从所述节点链表中确定第一位置节点;
响应于所述第一位置节点为空白节点,获取与所述的第一位置节点相邻的第二位置节点;
响应于所述第二位置节点为缓存了节点标识的位置节点,将所述第二位置节点确定为所述目标位置节点;
响应于所述第二位置节点为空白节点,根据所述第二位置节点,获取与所述第二位置节点相邻的位置节点,直到获取到缓存了节点标识的位置节点为止,将缓存了节点标识的位置节点作为所述目标位置节点。
在另一种可能的实现方式中,所述方法还包括:
获取至少一个缓存节点的节点标识;
对于每个缓存节点,根据所述缓存节点的节点标识,确定所述缓存节点对应的第二哈希值;
根据所述缓存节点对应的第二哈希值,确定所述缓存节点的节点标识在所述节点链表中的位置节点;
将所述缓存节点的节点标识存储在所述位置节点中。
根据本公开实施例的另一方面,提供了一种页面渲染方法,所述方法包括:
接收渲染服务器转发的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
响应于根据所述页面标识,确定本地存储所述目标页面的第一静态资源,对所述第一渲染请求进行修改,得到第二渲染请求,所述第二渲染请求用于从网页服务器获取所述目标页面的动态资源;
向所述网页服务器发送所述第二渲染请求,接收所述网页服务器基于所述第二渲染请求返回的渲染响应,所述渲染响应至少携带所述目标页面的动态资源;
从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源,用于所述渲染服务器对所述目标页面进行渲染。
在一种可能的实现方式中,所述对所述第一渲染请求进行修改,得到第二渲染请求,包括:
获取已存储的所述目标页面的静态资源的最新缓存时间;
在所述第一渲染请求中增加请求字段,将所述请求字段的字段值设置为所述最新缓存时间,得到所述第二渲染请求。
在另一种可能的实现方式中,所述从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据之前,所述方法还包括:
响应于所述渲染响应还携带目标状态码,执行所述从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据的步骤。
在另一种可能的实现方式中,所述方法还包括:
响应于所述渲染响应还携带所述目标页面的第二静态资源,向所述渲染服务器返回第二渲染数据,所述第二渲染数据包括所述第二静态资源和所述动态资源;
将所述第二静态资源作为所述第一静态资源存储在本地。
在另一种可能的实现方式中,所述从本地缓存中获取所述第一静态资源,包括:
确定所述页面标识的第三哈希值;
根据所述第三哈希值,确定所述页面标识对应的第一静态资源在存储列表对应的表格节点;
根据所述表格节点确定所述第一静态资源在存储列表中的存储位置;
根据所述存储位置,从所述存储列表中获取所述第一静态资源。
在另一种可能的实现方式中,所述从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据之后,所述方法还包括:
将所述第一静态资源在存储列表对应的表格节点调换到存储列表的头部;
将所述存储列表中的其他缓存数据依次根据所述存储列表向后移动。
在另一种可能的实现方式中,所述方法还包括:
周期性从所述存储列表的尾部遍历所述存储列表;
响应于所述存储列表中存储的缓存数据的存储时长超过预设时长,删除所述缓存数据。
根据本公开实施例的另一方面,提供了一种页面渲染装置,所述装置包括:
第一接收单元,被配置为执行接收终端的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
第一确定单元,被配置为执行根据所述页面标识,确定用于处理所述第一渲染请求的目标缓存节点的节点标识;
转发单元,被配置为执行根据所述节点标识,向所述目标缓存节点转发所述第一渲染请求,所述目标缓存节点用于根据所述页面标识,从本地缓存中获取所述目标页面的第一静态资源和从网页服务器中获取所述目标页面的动态资源;
第二接收单元,被配置为执行接收所述目标缓存节点返回的所述目标页面的第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源;
渲染单元,被配置为执行根据所述第一渲染数据,对所述目标页面进行渲染。
在一种可能的实现方式中,所述第一确定单元,被配置为执行根据所述页面标识,确定所述页面标识对应的第一哈希值;根据所述第一哈希值,从节点链表中确定目标位置节点,所述目标位置节点用于存储所述目标缓存节点的节点标识;从所述目标位置节点中获取所述目标缓存节点的节点标识。
在另一种可能的实现方式中,所述第一确定单元,被配置为执行根据所述第一哈希值,从所述节点链表中确定第一位置节点;响应于所述第一位置节点为空白节点,获取与所述的第一位置节点相邻的第二位置节点;响应于所述第二位置节点为缓存了节点标识的位置节点,将所述第二位置节点确定为所述目标位置节点;响应于所述第二位置节点为空白节点,根据所述第二位置节点,获取与所述第二位置节点相邻的位置节点,直到获取到缓存了节点标识的位置节点为止,将缓存了节点标识的位置节点作为所述目标位置节点。
在另一种可能的实现方式中,所述页面渲染装置还包括:
第一获取单元,被配置为执行获取至少一个缓存节点的节点标识;
第二确定单元,被配置为执行对于每个缓存节点,根据所述缓存节点的节点标识,确定所述缓存节点对应的第二哈希值;
第三确定单元,被配置为执行根据所述缓存节点对应的第二哈希值,确定所述缓存节点的节点标识在所述节点链表中的位置节点;
第一存储单元,被配置为执行将所述缓存节点的节点标识存储在所述位置节点中。
根据本公开实施例的另一方面,提供了一种页面渲染装置,所述装置包括:
第三接收单元,被配置为执行接收渲染服务器转发的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
第四确定单元,被配置为响应于根据所述页面标识,执行确定本地存储所述目标页面的第一静态资源,对所述第一渲染请求进行修改,得到第二渲染请求,所述第二渲染请求用于从网页服务器获取所述目标页面的动态资源;
发送单元,被配置为执行向所述网页服务器发送所述第二渲染请求,接收所述网页服务器基于所述第二渲染请求返回的渲染响应,所述渲染响应至少携带所述目标页面的动态资源;
第二获取单元,被配置为执行从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源,用于所述渲染服务器对所述目标页面进行渲染。
在一种可能的实现方式中,所述第四确定单元,被配置为执行获取已存储的所述目标页面的静态资源的最新缓存时间;在所述第一渲染请求中增加请求字段,将所述请求字段的字段值设置为所述最新缓存时间,得到所述第二渲染请求。
在另一种可能的实现方式中,所述第二获取单元,还被配置为响应于所述渲染响应还携带目标状态码,执行从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据。
在另一种可能的实现方式中,所述第二获取单元,还被配置为响应于所述渲染响应还携带所述目标页面的第二静态资源,执行向所述渲染服务器返回第二渲染数据,所述第二渲染数据包括所述第二静态资源和所述动态资源;
第二存储单元,被配置为执行将所述第二静态资源作为所述第一静态资源存储在本地。
在另一种可能的实现方式中,所述第二获取单元,被配置为执行确定所述页面标识的第三哈希值;根据所述第三哈希值,确定所述页面标识对应的第一静态资源在存储列表对应的表格节点;根据所述表格节点确定所述第一静态资源在存储列表中的存储位置;根据所述存储位置,从所述存储列表中获取所述第一静态资源。
在另一种可能的实现方式中,所述页面渲染装置还包括:
调换单元,被配置为执行将所述第一静态资源在存储列表对应的表格节点调换到存储列表的头部;
移动单元,被配置为执行将所述存储列表中的其他缓存数据依次根据所述存储列表向后移动。
在另一种可能的实现方式中,所述页面渲染装置还包括:
遍历单元,被配置为执行周期性从所述存储列表的尾部遍历所述存储列表;
删除单元,被配置为响应于所述存储列表中存储的缓存数据的存储时长超过预设时长,执行删除所述缓存数据。
根据本公开实施例的另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述任一可能实现方式所述的页面渲染方法。
根据本公开实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以实现上述任一可能实现方式所述的页面渲染方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,当所述计算机程序产品中的指令由终端或服务器的处理器执行时,使得终端或服务器能够执行上述任一可能实现方式中所述的页面渲染方法。
在本公开实施例中,当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是根据一示例性实施例示出的一种页面渲染方法的流程图;
图3是根据一示例性实施例示出的一种页面渲染方法的流程图;
图4是根据一示例性实施例示出的一种页面渲染方法的示意图;
图5是根据一示例性实施例示出的一种节点链表的示意图;
图6是根据一示例性实施例示出的一种页面渲染方法的示意图;
图7是根据一示例性实施例示出的一种页面渲染方法的流程图;
图8是根据一示例性实施例示出的一种存储列表的示意图;
图9是根据一示例性实施例示出的一种页面渲染装置的框图;
图10是根据一示例性实施例示出的一种页面渲染装置的框图;
图11是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。
图1是根据一示例性实施例示出的一种实施环境的示意图。参见图1,该实施环境中包括终端101、渲染服务器102、缓存节点103和网页服务器104。其中,终端101和渲染服务器102之间通过网络连接进行数据交互,渲染服务器102与缓存节点103之间通过IP(Internet Protocol,网际互连协议)和端口进行数据交互,缓存节点103和网页服务器104之间通过网络连接进行数据交互。
终端101中安装浏览器应用,终端101通过浏览器应用将网页服务器104中的页面数据显示在显示界面中。该过程中,终端101向渲染服务器102发送渲染请求,渲染服务器102根据渲染请求获取渲染请求对应的渲染数据,将该渲染数据进行页面渲染,得到可以显示的页面数据,将该页面数据发送给终端101,由终端101将该页面数据进行显示。其中,渲染数据包括静态资源和动态资源,渲染服务器102可以通过缓存节点103从网页服务器104中获取动态资源,以及,从缓存节点103的本地存储中获取静态资源。相应的,缓存节点103用于缓存不同网页页面对应的静态资源,缓存节点103可以为一个节点集群,缓存节点103也可以配置在用于缓存数据的缓存服务器中,在本公开实施例中,对此不作具体限定。
其中,渲染服务器102通过缓存节点103获取动态资源时,直接通过缓存节点103向网页服务器104转发渲染请求,从网页服务器104中获取该渲染请求对应的动态资源;渲染服务器102通过缓存节点103获取静态资源时,根据接收到的渲染请求查看本地是否缓存了渲染请求对应的静态资源,当本地缓存了该渲染请求对应的静态资源时,直接获取本地缓存的静态资源,当本地未缓存该渲染请求对应的静态资源时,向网页服务器104转发该渲染请求,从网页服务器104中获取静态资源,并将获取到的静态资源缓存在缓存节点103本地,以便当再次获取该静态资源时,缓存节点103可以直接从本地获取该静态资源。需要说明的一点是,渲染服务器102向网页服务器104转发渲染请求来获取动态资源或动态资源时,转发的渲染请求可以为同一渲染请求。
其中,该终端101可以为手机、平板电脑、可穿戴设备、电脑或其他电子设备。渲染服务器102、缓存节点103所在的缓存服务器和网页服务器104均可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心,在本公开实施例中,对此不作具体限定。
图2是根据一示例性实施例示出的一种页面渲染方法的流程图,参见图2,该页面渲染方法包括以下步骤:
在步骤S201中,接收终端的第一渲染请求,该第一渲染请求携带待渲染的目标页面的页面标识。
在步骤S202中,根据该页面标识,确定用于处理该第一渲染请求的目标缓存节点的节点标识。
在步骤S203中,根据该节点标识,向该目标缓存节点转发该第一渲染请求,该目标缓存节点用于根据该页面标识,从本地缓存中获取该目标页面的第一静态资源和从网页服务器中获取该目标页面的动态资源。
在步骤S204中,接收该目标缓存节点返回的该目标页面的第一渲染数据,该第一渲染数据包括该动态资源和该第一静态资源。
在步骤S205中,根据该第一渲染数据,对该目标页面进行渲染。
在一种可能的实现方式中,该根据该页面标识,确定用于处理该第一渲染请求的目标缓存节点的节点标识,包括:
根据该页面标识,确定该页面标识对应的第一哈希值;
根据该第一哈希值,从节点链表中确定目标位置节点,该目标位置节点用于存储该目标缓存节点的节点标识;
从该目标位置节点中获取该目标缓存节点的节点标识。
在另一种可能的实现方式中,该根据该第一哈希值,从节点链表中确定目标位置节点,包括:
根据该第一哈希值,从该节点链表中确定第一位置节点;
响应于该第一位置节点为空白节点,获取与该的第一位置节点相邻的第二位置节点;
响应于该第二位置节点为缓存了节点标识的位置节点,将该第二位置节点确定为该目标位置节点;
响应于该第二位置节点为空白节点,根据该第二位置节点,获取与该第二位置节点相邻的位置节点,直到获取到缓存了节点标识的位置节点为止,将缓存了节点标识的位置节点作为该目标位置节点。
在另一种可能的实现方式中,该方法还包括:
获取至少一个缓存节点的节点标识;
对于每个缓存节点,根据该缓存节点的节点标识,确定该缓存节点对应的第二哈希值;
根据该缓存节点对应的第二哈希值,确定该缓存节点的节点标识在该节点链表中的位置节点;
将该缓存节点的节点标识存储在该位置节点中。
在本公开实施例中,当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
图3是根据一示例性实施例示出的一种页面渲染方法的流程图,参见图3,该页面渲染方法包括以下步骤:
在步骤S301中,接收渲染服务器转发的第一渲染请求,该第一渲染请求携带待渲染的目标页面的页面标识。
在步骤S302中,响应于根据该页面标识,确定本地存储该目标页面的第一静态资源,对该第一渲染请求进行修改,得到第二渲染请求,该第二渲染请求用于从网页服务器获取该目标页面的动态资源。
在步骤S303中,向该网页服务器发送该第二渲染请求,接收该网页服务器基于该第二渲染请求返回的渲染响应,该渲染响应至少携带该目标页面的动态资源。
在步骤S304中,从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据,该第一渲染数据包括该动态资源和该第一静态资源,用于该渲染服务器对该目标页面进行渲染。
在一种可能的实现方式中,该对该第一渲染请求进行修改,得到第二渲染请求,包括:
获取已存储的该目标页面的静态资源的最新缓存时间;
在该第一渲染请求中增加请求字段,将该请求字段的字段值设置为该最新缓存时间,得到该第二渲染请求。
在另一种可能的实现方式中,该从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据之前,该方法还包括:
响应于该渲染响应还携带目标状态码,执行该从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据的步骤。
在另一种可能的实现方式中,该方法还包括:
响应于该渲染响应还携带该目标页面的第二静态资源,向该渲染服务器返回第二渲染数据,该第二渲染数据包括该第二静态资源和该动态资源;
将该第二静态资源作为该第一静态资源存储在本地。
在另一种可能的实现方式中,该从本地缓存中获取该第一静态资源,包括:
确定该页面标识的第三哈希值;
根据该第三哈希值,确定该页面标识对应的第一静态资源在存储列表对应的表格节点;
根据该表格节点确定该第一静态资源在存储列表中的存储位置;
根据该存储位置,从该存储列表中获取该第一静态资源。
在另一种可能的实现方式中,该从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据之后,该方法还包括:
将该第一静态资源在存储列表对应的表格节点调换到存储列表的头部;
将该存储列表中的其他缓存数据依次根据该存储列表向后移动。
在另一种可能的实现方式中,该方法还包括:
周期性从该存储列表的尾部遍历该存储列表;
响应于该存储列表中存储的缓存数据的存储时长超过预设时长,删除该缓存数据。
在本公开实施例中,当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
图4是根据一示例性实施例示出的一种页面渲染方法的流程图,参见图4,该页面渲染方法包括以下步骤:
在步骤S401中,渲染服务器接收终端的第一渲染请求,该第一渲染请求携带待渲染的目标页面的页面标识。
其中,该目标页面可以为终端中的安装的浏览器应用需要显示的页面。该页面标识用于指示该目标页面,该页面标识可以为该目标页面对应的域名信息等。
终端可以通过浏览器应用接收用户输入的第一渲染请求,其中,该第一渲染请求可以为根据用户输入的搜索指令触发的,也可以为根据用户点击网页链接时产生的跳转指令触发的。终端根据搜索指令或网页跳转指令确定将要渲染的目标页面,获取该目标页面的页面标识,根据该页面标识生成第一渲染请求。在本步骤中,终端将该第一渲染请求发送给渲染服务器,相应的,渲染服务器接收该第一渲染请求。
在步骤S402中,渲染服务器根据该页面标识,确定用于处理该第一渲染请求的目标缓存节点的节点标识。
其中,该节点标识可以为目标缓存节点的IP和端口等数据交互接口。在本公开实施例中,每个相同页面标识对应的第一渲染请求都由相同的目标缓存节点进行处理。在本步骤中,渲染服务器确定与第一渲染请求的页面标识对应的目标缓存节点的节点标识。
在一种可能的实现方式中,渲染服务器可以对不同的缓存节点进行配置,将不同的缓存节点的节点标识存储在渲染服务器中,当接收到第一渲染请求时,根据该第一渲染请求中的页面标识,确定目标缓存节点的节点标识。相应的,渲染服务器中存储多个缓存节点的节点标识,当接收到第一渲染请求时,渲染服务器可以根据接收到的第一渲染请求的页面标识,从本地存储的节点标识中获取与该页面标识对应的目标缓存节点对应的节点标识。渲染服务器根据事先配置的页面标识的存储位置,获取节点标识的过程可以通过以下步骤(A1)-(A3)实现,包括:
(A1)渲染服务器根据该页面标识,确定该页面标识对应的第一哈希值。
在本步骤中,渲染服务器通过一致性哈希算法,确定接收到的页面标识的第一哈希值。
(A2)渲染服务器根据该第一哈希值,从节点链表中确定目标位置节点,该目标位置节点用于存储该目标缓存节点的节点标识。
渲染服务器根据第一哈希值,确定该第一哈希值对应的节点链表中的目标位置节点。该过程可以为:渲染服务器根据位置节点的数量,对第一哈希值进行取模运算,将取模运算的运算结果作为目标位置节点的编号,根据该目标位置节点的编号,从节点链表中确定该目标位置节点,从该目标位置节点中获取目标缓存节点的节点标识。
当该节点链表中位置节点的数量为n时,渲染服务器可以通过该一下公式一确定该第一哈希值对应的位置节点。
公式一:hash(url)%n
其中,hash(url)表示缓存节点的第二哈希值,n表示位置节点的数量,url表示页面标识,hash(url)%n表示根据位置节点的数量对第二哈希值进行取模运算。
需要说明的一点是,对第一哈希值进行取模运算后,得到的位置节点的编号对应的位置节点中,可能未配置缓存节点的节点标识。为了保证渲染服务器可以获取到目标缓存节点的节点标识,当该第一哈希值对应的位置节点中存储有节点标识时,渲染服务器可以直接获取该位置节点存储的节点标识;当该第一哈希值对应的位置节点中不存在节点标识时,渲染服务器可以获取该位置节点相邻的位置节点,从相邻的位置节点中获取节点标识,该过程可以通过一下步骤(A2-1)-(A2-4)实现,包括:
(A2-1)渲染服务器根据该第一哈希值,从该节点链表中确定第一位置节点。
在本步骤中,渲染服务器根据该第一哈希值,从节点链表中获取该第一哈希值对应的第一位置节点。
(A2-2)响应于该第一位置节点为空白节点,渲染服务器获取与该的第一位置节点相邻的第二位置节点;
在本步骤中,将缓存有节点标识的位置节点确定为目标位置节点。渲染服务器对该第一位置节点进行节点标识检测,当检测到该第一位置节点中缓存了节点标识时,将该第一位置节点确定为目标位置节点;当渲染服务器未检测到该第一位置节点中缓存的节点标识时,确定该第一位置节点为空白节点,获取与该第一位置节点相邻的第二位置节点,继续对该第二位置节点进行节点标识检测,响应于该第二位置节点为缓存了节点标识的位置节点,执行步骤(A2-3);响应于该第二位置节点为未缓存节点标识的位置节点,执行步骤(A2-4)。
(A2-3)响应于该第二位置节点为缓存了节点标识的位置节点,将该第二位置节点确定为该目标位置节点。
(A2-4)响应于所述第二位置节点为空白节点,根据所述第二位置节点获取与该第二位置节点相邻的位置节点,直到获取到缓存了节点标识的位置节点为止,将缓存了节点标识的位置节点作为所述目标位置节点。
渲染服务器没有在该第二位置节点中检测到节点标识时,渲染服务器继续获取与该第二位置节点相邻的位置节点,直到获取到的位置节点中存储了节点标识,将该位置节点确定为目标位置节点。
需要说明的一点是,渲染服务器在连续获取相邻的位置节点时,需要按照相同的获取方向获取该相邻的位置节点。例如,参见图5,当该节点链表为环形链表时,渲染服务器可以按照顺时针方向获取与第一位置节点相邻的第二位置节点,以及按照顺时针方向获取与该第二位置节点相邻的位置节点。
(A3)渲染服务器从该目标位置节点中获取该目标缓存节点的节点标识。
在本步骤中渲染服务器从该目标位置节点中获取该目标位置节点对应的节点标识。
需要说明的一点是,渲染服务器确定了页面标识对应的目标缓存节点后,可以记录该页面标识和目标缓存节点的位置节点的对应关系,当渲染服务器再次接收到相同页面标识对应的页面渲染请求时,可以根据该页面标识直接从对应的目标位置节点中获取该目标缓存节点的节点标识。
渲染服务器在通过步骤(A1)-(A3)获取节点标识之前,渲染服务器需要对至少一个缓存节点进行配置,确定每个缓存节点对应的位置节点。渲染服务器需要对至少一个缓存节点进行配置的过程可以通过以下步骤(B1)-(B4)实现,包括:
(B1)渲染服务器获取至少一个缓存节点的节点标识。
渲染服务器可以事先获取节点集群或缓存服务器中每个缓存节点的节点标识。其中,响应于该缓存节点为节点集群中的缓存节点,渲染服务器可以接收节点集群中每个缓存节点发送的节点标识;响应于该缓存节点为缓存服务器中的缓存节点,渲染服务器可以与缓存服务器建立连接,接收缓存服务器发送的至少一个缓存节点。需要说明的一点是,响应于缓存节点是缓存服务器中的缓存节点时,渲染服务器可以从同一缓存服务器中获取至少一个缓存节点,渲染服务器也可以从多个缓存服务器中获取至少一个缓存节点,在本公开实施例中,对此不作具体限定。
(B2)对于每个缓存节点,渲染服务器根据该缓存节点的节点标识,确定该缓存节点对应的第二哈希值。
渲染服务器根据每个缓存节点的节点标识,通过一致性哈希算法,将每个缓存节点的节点标识转换成哈希值,得到每个缓存节点对应的第二哈希值。
(B3)渲染服务器根据该缓存节点对应的第二哈希值,确定该缓存节点的节点标识在该节点链表中的位置节点。
该节点链表中包括至少一个位置节点,渲染服务器事先对每个位置节点进行编号,根据位置节点的编号和缓存节点的第二哈希值为每个缓存节点配置位置节点。渲染服务器根据位置节点的数量,对第二哈希值进行取模运算,将取模运算的运算结果作为缓存节点对应的位置节点的编号,根据该位置节点的编号,从节点链表中确定该缓存节点对应的位置节点。
其中,该节点链表可以为任一类型的链表,例如,该节点链表可以为链形列表,该节点链表还可以为环形链表,在本公开实施例中,对该节点链表的类型不作具体限定。另外,该节点链表中的位置节点的数量不小于缓存节点的数量,该位置节点的数量可以根据需要进行设置,在本公开实施例中,对该位置节点的数量也不作具体限定。例如,该位置节点的数量可以为2的32次方个。
例如,请继续参见图5,该节点链表为环形链表,渲染服务器可以根据第二哈希值在该环形链表中确定该位置节点。该环形链表中位置节点的数量为n,则渲染服务器根据该缓存节点对应的第二哈希值,确定该缓存节点的节点标识在该节点链表中的位置节点可以由公式二表示。
公式二:hash(IP:port)%n
其中,hash(IP:port)表示第一哈希值,n表示节点链表中位置节点的数量,IP:port表示节点标识,hash(IP:port)%n表示根据位置节点的数量对第一哈希值进行取模运算。
(B4)渲染服务器将该缓存节点的节点标识存储在该位置节点中。
在本步骤中,渲染服务器将缓存节点的节点标识存储到该节点标识对应的位置节点中。
在本实现方式中,将缓存节点的节点标识事先存储在节点链表的位置节点中,从而渲染服务器可以直接根据事先配置的节点链表确定换缓存节点的节点标识的存储位置节点,从而从该位置节点中获取该目标缓存节点的节点标识,以便渲染服务器可以根据该节点标识,通过目标缓存节点获取第一渲染数据。
当需要增加缓存节点时,渲染服务器只需要获取新的缓存节点的节点标识,通过上述步骤(B1)-(B4)将该新的缓存节点的节点标识配置到渲染服务器中,从而当增加新的缓存节点时,只需要通过该缓存节点的第二哈希值就可以确定该缓存节点对应的位置节点,从而简化了增加缓存节点时,渲染服务器的配置效率。
在另一种可能的实现方式中,该至少一个缓存节点由管理节点进行管理,相应的,渲染服务器可以将第一渲染请求直接发送给至少一个缓存节点对应的管理节点,由管理节点根据该第一渲染请求获取该第一渲染请求对应的目标缓存节点的节点标识,将该第一渲染请求转发给该目标缓存节点。其中,该管理节点确定第一渲染请求对应的目标缓存节点的过程与渲染服务器获取第一渲染请求对应的目标缓存节点的过程相似,在此不再赘述。
另外,该管理节点还可以根据页面标识和节点标识的对应关系确定第一渲染请求的目标缓存节点的节点标识。相应的,当渲染服务器接收到第一渲染请求时,渲染服务器可以获取事先存储的页面标识和节点标识的对应关系,确定该第一渲染请求携带的页面标识,根据该页面标识从页面标识和节点标识的对应关系中确定该页面标识对应的节点标识。
在本实现方式中,渲染服务器根据页面标识和节点标识的对应关系,确定页面标识对应的节点标识,从而提高了确定目标缓存节点的效率,进而提高了渲染服务器的渲染效率。
在步骤S403中,渲染服务器根据该节点标识,向该目标缓存节点转发该第一渲染请求。
该目标缓存节点用于通过会话劫持截获第一渲染请求,根据该第一渲染请求的页面标识,从本地缓存中获取该目标页面的第一静态资源和从网页服务器中获取该目标页面的动态资源。
在本步骤中,参见图6,渲染服务器根据该节点标识,向该目标缓存节点转发该第一渲染请求。例如,该节点标识可以为该目标缓存节点的IP和端口,相应的,渲染服务器可以根据该目标缓存节点的IP和端口,向该目标缓存节点转发该第一渲染请求。该目标缓存节点通过劫持工具对该第一渲染请求机型会话劫持。
在步骤S404中,目标缓存节点接收渲染服务器转发的第一渲染请求。
该第一渲染请求携带待渲染的目标页面的页面标识。在本步骤中,参见图7,目标缓存节点通过劫持工具对第一渲染请求进行拦截。其中,该劫持工具可以为mitmproxy(一种拦截工具包)或其他抓包工具。当第一渲染请求通过该目标缓存节点时,目标缓存节点对该第一渲染请求进行拦截。
在步骤S405中,响应于根据该页面标识,目标缓存节点确定本地存储该目标页面的第一静态资源,对该第一渲染请求进行修改,得到第二渲染请求,该第二渲染请求用于从网页服务器获取该目标页面的动态资源。
在本步骤中,目标缓存节点确定本地存储了该页面标识对应的第一静态资源,对第一渲染请求进行修改,得到第二渲染请求。其中,目标缓存节点对该第一渲染请求进行修改,得到第二渲染请求的过程可以通过以下步骤(1)-(2)实现,包括:
(1)目标缓存节点获取已存储的该目标页面的静态资源的最新缓存时间。
目标缓存节点获取已存储的静态资源的最新缓存时间(Last-Modied),其中,该最新缓存时间可以从该静态资源的属性信息中获取,相应的,响应于目标缓存节点缓存静态资源时,将缓存该静态资源的时间点缓存至该静态资源对应的属性信息中。在本步骤中,目标缓存节点可以直接获取该静态资源对应的最新缓存时间。
(2)目标缓存节点在该第一渲染请求中增加请求字段,将该请求字段的字段值设置为该最新缓存时间,得到该第二渲染请求。
目标缓存节点根据该静态资源的最新缓存时间,在该第一渲染请求中增加请求字段。其中,该请求字段可以增加在该第一渲染请求的头文件中。该请求字段用于网页服务器根据该请求字段判断该静态资源是否为有效的静态资源。
在本实现方式中,目标缓存节点根据该静态资源的最新缓存时间,将该第一渲染请求修改为第二渲染请求,从而使第二渲染请求中携带静态资源的最新缓存时间,以便网页服务器可以根据该静态资源的最新缓存时间对该静态资源的有效性进行检测,防止了目标缓存节点中存储了失效的静态资源,而向渲染服务器返回失效的静态资源,造成目标缓存节点返回静态资源不准确。
继续参见图7,目标缓存节点接收渲染服务器转发的第一渲染请求时,可以查询本地是否存储了该第一渲染请求对应的第一静态资源,响应于目标缓存节点未检测到与该页面标识对应的第一静态资源时,不对该第一渲染请求进行修改,直接将该第一渲染请求发送给网页服务器。当目标缓存节点根据该页面标识检测到本地缓存中,缓存了该页面标识对应的第一静态资源时执行本步骤S405。
其中,目标缓存节点通过劫持工具对劫持的第一渲染请求对应的第一静态资源进行检测。例如,当该劫持工具为mitmproxy时,mitmproxy至少提供request(请求)接口,当第一渲染请求通过该mitmproxy的request接口时,目标缓存节点重写该request接口,使该request接口具有查询第一渲染请求对应的第一静态资源的查询逻辑,通过该request接口对本地有无缓存第一静态资源进行查询。
在步骤S406中,目标缓存节点向该网页服务器发送该第二渲染请求。
在本步骤中,继续参见图7,目标缓存节点根据该页面标识,向该页面标识对应的网页服务器发送该第二渲染请求。
在步骤S407中,网页服务器接收该第二渲染请求。
在步骤S408中,网页服务器根据该第二渲染请求,确定该第二渲染请求对应的渲染响应。
其中,该渲染响应至少携带该目标页面的动态资源。
该网页服务器根据接收到的第二渲染请求对该目标缓存节点中的静态资源的有效性进行判断。
响应于网页服务器确定该静态资源为有效的静态资源,该渲染响应除携带动态资源外还携带目标状态码,该目标状态码用于指示该静态资源为有效的静态资源。响应于网页服务器确定该静态资源为无效的静态资源,该渲染响应除携带动态资源外还携带第二静态资源。
在步骤S409中,网页服务器向目标缓存节点返回该渲染响应。
在步骤S410中,目标缓存节点接收该网页服务器基于该第二渲染请求返回的渲染响应。
继续参见图7,目标缓存节点接收到渲染响应后,可以继续通过劫持工具劫持该渲染响应,判断该渲染响应中携带的内容。其中,目标缓存节点劫持该渲染响应的劫持工具和劫持该第一渲染请求的劫持工具可以相同也可以不同,在本公开实施例中,对此不作具体限定。
目标缓存节点劫持该渲染响应后,对该渲染响应的内容进行判断,确定该渲染响应是否携带目标状态码。例如,该劫持工具仍为mitmproxy,在本步骤中,目标缓存节点接收到渲染响应后,对该劫持工具的response接口进行改写,通过改写的response接口确定该渲染响应中是否携带目标状态码。响应于该渲染响应携带该目标状态码,执行步骤S411,响应于该渲染响应不携带该目标状态码,执行步骤S414。
在步骤S411中,目标缓存节点从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据,该第一渲染数据包括该动态资源和该第一静态资源,用于该渲染服务器对该目标页面进行渲染。
在本步骤中,目标缓存节点从本地存储的数据中,获取该第一静态资源,将第一静态资源和网页服务器返回的动态资源组成第一渲染数据,将该第一渲染数据发送给渲染服务器。
目标缓存节点可以通过LRU(Least Recently Used,最近最久未使用法)淘汰算法,对目标缓存节点进行缓存治理,从而保证目标缓存节点中可以存储有效的静态资源,提高目标缓存节点中静态资源查询的效率。参见图8,目标缓存节点可以将需要缓存的静态资源存储到存储列表中,将根据哈希值哈希表中的表格节点存储在存储列表中,记录该表格节点在该存储列表中的缓存位置。在本步骤中,目标缓存节点可以根据该缓存治理方案,获取本地存储的第一静态资源,该过程可以通过以下步骤(1)-(4)实现,包括:
(1)目标缓存节点确定该页面标识的第三哈希值。
在本步骤中,目标缓存节点通过哈希算法确定该页面标识对应的第三哈希值。其中,该页面标识的第三哈希值与该页面标识的第一哈希值可以为根据同一种哈希算法确定的哈希值,也可以为根据不同的哈希算法确定的哈希值,在本公开实施例中,对此不作具体限定。
(2)目标缓存节点根据该第三哈希值,确定该页面标识对应的第一静态资源在存储列表对应的表格节点。
在本步骤中,目标缓存节点根据该第三哈希值,查询哈希表中该第三哈希值对应的表格节点。
(3)目标缓存节点根据该表格节点确定该第一静态资源在存储列表中的存储位置。
表格节点中,存储第一静态资源在该存储列表中的存储位置。在本步骤中,目标缓存节点根据该表格节点,获取该第一静态资源在该存储列表中的存储位置。其中,该存储列表可以为双向链表。通过双向链表存储第一静态资源,简化了静态资源的存储查询过程,提高了静态资源的存储查询效率。
(4)目标缓存节点根据该存储位置,从该存储列表中获取该第一静态资源。
存储列表的不同存储位置中存储不同的第一静态资源,在本步骤中,目标缓存节点从第一静态资源对应的存储位置中获取该第一静态资源。
在本实现方式中,将第一静态资源存储至存储列表中,通过最新缓存时间对第一静态资源的存储位置进行更新,从而方便对目标缓存节点中缓存的静态资源进行治理。
在步骤S412中,渲染服务器接收该目标缓存节点返回的该目标页面的第一渲染数据,该第一渲染数据包括该动态资源和该第一静态资源。
在本步骤中,渲染服务器通过目标缓存节点的IP和端口接收目标缓存节点返回的第一渲染数据。
在步骤S413中,渲染服务器根据该第一渲染数据,对该目标页面进行渲染。
在本步骤中,渲染服务器根据该第一渲染数据对该目标页面进行渲染,生成可显示的目标页面,将该目标页面发送给终端,由终端对该目标页面进行显示。
在步骤S414中,目标缓存节点向渲染服务器返回第二渲染数据,该第二渲染数据中包括第二静态资源和动态资源。
目标缓存节点接收到网页服务器发送的第二静态资源和动态资源,将该第二静态资源和动态资源生成第二渲染数据,直接将该第二渲染数据发送给渲染服务器。
在步骤S415中,目标缓存节点将第二静态资源作为第一静态资源存储在本地。
在本步骤中,目标缓存节点将第二静态资源更新到失效的第一静态资源的存储位置。
需要说明的一点是,目标缓存节点可以先将第二静态资源发送给渲染服务器,再将第二静态资源存储在目标缓存节点中;目标缓存节点还可以先将第二静态资源存储在目标缓存节点中,再将第二静态资源发送给渲染服务器;目标缓存节点还可以同时将第二静态资源缓存在目标缓存节点中,以及将第二静态资源发送给渲染服务器。也即,目标缓存节点可以先执行步骤S414,再执行步骤S415;目标缓存节点也可以先执行步骤S415,再执行步骤S414;目标缓存节点和可以同时执行步骤S414和步骤S415,在本公开实施例中,对目标缓存节点执行步骤S414和步骤S415的顺序不作具体限定。
在步骤S416中,渲染服务器接收该目标缓存节点返回的该目标页面的第二渲染数据,该第二渲染数据包括该动态资源和该第二静态资源。
本步骤与步骤S412相似,在此不再赘述。
在步骤S417中,渲染服务器根据该第二渲染数据,对该目标页面进行渲染。
本步骤与步骤S413相似,在此不再赘述。
另外,继续参见图5,该目标缓存节点中包括三种类型的目标缓存节点,本地无缓存类型、本地有缓存类型和缓存失效类型。其中,本地无缓存类型的目标缓存节点指还未缓存静态资源,或缓存的静态资源已被删除的目标缓存节点。本地有缓存类型的目标缓存节点指存储了有效的静态资源的目标缓存节点。缓存失效类型的目标缓存节点指缓存了失效的静态资源的目标缓存节点。其中,本地无缓存类型的目标缓存节点为目标缓存节点通过缓存治理方案对本地缓存的静态资源进行了删除。其中,目标缓存节点可以通过LRU淘汰算法,对目标缓存节点进行缓存治理。当第一静态资源被使用,或接收到新的第二静态资源时,目标缓存节点对该第一静态资源的存储位置进行更新,该过程可以为:目标缓存节点将该第一静态资源在存储列表对应的表格节点调换到存储列表的头部;将该存储列表中的其他缓存数据依次根据该存储列表向后移动。目标缓存节点通过周期性检测存储列表中第一静态资源的最新缓存时间,对该目标缓存节点中缓存的第一静态资源进行清理,该过程可以为:目标缓存节点周期性从该存储列表的尾部遍历该存储列表;响应于该存储列表中存储的缓存数据的存储时长超过预设时长,删除该缓存数据。
其中,该遍历周期可以根据需要进行设置,在本公开实施例中,该遍历周期可以为10min或30min等。该预设时长也可以根据需要进行设置,该预设时长可以为1小时或1.5小时等。
在本实现方式中,目标缓存节点通过周期性遍历缓存的第一静态资源,从而可以及时删除目标缓存节点中失效的第一静态资源,从而无需通过网页服务器对第一静态资源的有效性进行判断,提高了获取第一静态资源的效率。
在本公开实施例中,当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图9是根据一示例性实施例示出的一种页面渲染装置的框图。参见图9,该装置包括:
第一接收单元901,被配置为执行接收终端的第一渲染请求,该第一渲染请求携带待渲染的目标页面的页面标识;
第一确定单元902,被配置为执行根据该页面标识,确定用于处理该第一渲染请求的目标缓存节点的节点标识;
转发单元903,被配置为执行根据该节点标识,向该目标缓存节点转发该第一渲染请求,该目标缓存节点用于根据该页面标识,从本地缓存中获取该目标页面的第一静态资源和从网页服务器中获取该目标页面的动态资源;
第二接收单元904,被配置为执行接收该目标缓存节点返回的该目标页面的第一渲染数据,该第一渲染数据包括该动态资源和该第一静态资源;
渲染单元905,被配置为执行根据该第一渲染数据,对该目标页面进行渲染。
在一种可能的实现方式中,该第一确定单元902,被配置为执行根据该页面标识,确定该页面标识对应的第一哈希值;根据该第一哈希值,从节点链表中确定目标位置节点,该目标位置节点用于存储该目标缓存节点的节点标识;从该目标位置节点中获取该目标缓存节点的节点标识。
在另一种可能的实现方式中,该第一确定单元902,被配置为执行根据该第一哈希值,从该节点链表中确定第一位置节点;响应于该第一位置节点为空白节点,获取与该的第一位置节点相邻的第二位置节点;响应于该第二位置节点为缓存了节点标识的位置节点,将该第二位置节点确定为该目标位置节点;响应于该第二位置节点为空白节点,根据该第二位置节点,获取与该第二位置节点相邻的位置节点,直到获取到缓存了节点标识的位置节点为止,将缓存了节点标识的位置节点作为该目标位置节点。
在另一种可能的实现方式中,该页面渲染装置还包括:
第一获取单元,被配置为执行获取至少一个缓存节点的节点标识;
第二确定单元,被配置为执行对于每个缓存节点,根据该缓存节点的节点标识,确定该缓存节点对应的第二哈希值;
第三确定单元,被配置为执行根据该缓存节点对应的第二哈希值,确定该缓存节点的节点标识在该节点链表中的位置节点;
第一存储单元,被配置为执行将该缓存节点的节点标识存储在该位置节点中。
在本公开实施例中,当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
图10是根据一示例性实施例示出的一种页面渲染装置的框图。参见图10,该装置包括:
第三接收单元1001,被配置为执行接收渲染服务器转发的第一渲染请求,该第一渲染请求携带待渲染的目标页面的页面标识;
第四确定单元1002,被配置为响应于根据该页面标识,执行确定本地存储该目标页面的第一静态资源,对该第一渲染请求进行修改,得到第二渲染请求,该第二渲染请求用于从网页服务器获取该目标页面的动态资源;
发送单元1003,被配置为执行向该网页服务器发送该第二渲染请求,接收该网页服务器基于该第二渲染请求返回的渲染响应,该渲染响应至少携带该目标页面的动态资源;
第二获取单元1004,被配置为执行从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据,该第一渲染数据包括该动态资源和该第一静态资源,用于该渲染服务器对该目标页面进行渲染。
在一种可能的实现方式中,该第四确定单元1002,被配置为执行获取已存储的该目标页面的静态资源的最新缓存时间;在该第一渲染请求中增加请求字段,将该请求字段的字段值设置为该最新缓存时间,得到该第二渲染请求。
在另一种可能的实现方式中,该第二获取单元1004,还被配置为响应于该渲染响应还携带目标状态码,执行从本地缓存中获取该第一静态资源,向该渲染服务器返回第一渲染数据。
在另一种可能的实现方式中,该第二获取单元1004,还被配置为响应于该渲染响应还携带该目标页面的第二静态资源,执行向该渲染服务器返回第二渲染数据,该第二渲染数据包括该第二静态资源和该动态资源;
第二存储单元,被配置为执行将该第二静态资源作为该第一静态资源存储在本地。
在另一种可能的实现方式中,该第二获取单元1004,被配置为执行确定该页面标识的第三哈希值;根据该第三哈希值,确定该页面标识对应的第一静态资源在存储列表对应的表格节点;根据该表格节点确定该第一静态资源在存储列表中的存储位置;根据该存储位置,从该存储列表中获取该第一静态资源。
在另一种可能的实现方式中,该页面渲染装置还包括:
调换单元,被配置为执行将该第一静态资源在存储列表对应的表格节点调换到存储列表的头部;
移动单元,被配置为执行将该存储列表中的其他缓存数据依次根据该存储列表向后移动。
在另一种可能的实现方式中,该页面渲染装置还包括:
遍历单元,被配置为执行周期性从该存储列表的尾部遍历该存储列表;
删除单元,被配置为响应于该存储列表中存储的缓存数据的存储时长超过预设时长,执行删除该缓存数据。
在本公开实施例中,当接收到终端的第一渲染请求时,从缓存节点中获取静态资源,从而借助于缓存节点来缓存页面的静态资源,渲染服务器本地可以不缓存静态资源。因此,未配置缓存功能的渲染服务器可以直接从缓存节点中获取静态资源,不需要与网页服务器之间进行交互,提高了获取静态资源的效率,进而提高了页面渲染的效率。
需要说明的是:上述实施例提供的页面渲染装置在进行页面渲染时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将终端的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的页面渲染装置与页面渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是根据一示例性实施例示出的一种电子设备的框图,该电子设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)1101和一个或一个以上的存储器1102,其中,所述存储器1102中存储有至少一条指令,所述至少一条指令由所述处理器1101加载并执行以实现上述各个方法实施例提供的页面渲染方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,上述至少一条指令可由服务器中的处理器执行以完成上述实施例中的页面渲染方法。例如,所述计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-OnlyMemory,只读光盘)、磁带、软盘和光数据存储设备等。
本公开还提供了一种计算机程序产品,当计算机程序产品中的指令由终端或服务器的处理器执行时,使得终端或服务器能够执行上述各个方法实施例提供的页面渲染方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种页面渲染方法,其特征在于,所述方法包括:
接收终端的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
根据所述页面标识,确定用于处理所述第一渲染请求的目标缓存节点的节点标识;
根据所述节点标识,向所述目标缓存节点转发所述第一渲染请求,所述目标缓存节点用于根据所述页面标识,从本地缓存中获取所述目标页面的第一静态资源和从网页服务器中获取所述目标页面的动态资源;
接收所述目标缓存节点返回的所述目标页面的第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源;
根据所述第一渲染数据,对所述目标页面进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述根据所述页面标识,确定用于处理所述第一渲染请求的目标缓存节点的节点标识,包括:
根据所述页面标识,确定所述页面标识对应的第一哈希值;
根据所述第一哈希值,从节点链表中确定目标位置节点,所述目标位置节点用于存储所述目标缓存节点的节点标识;
从所述目标位置节点中获取所述目标缓存节点的节点标识。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一哈希值,从节点链表中确定目标位置节点,包括:
根据所述第一哈希值,从所述节点链表中确定第一位置节点;
响应于所述第一位置节点为空白节点,获取与所述的第一位置节点相邻的第二位置节点;
响应于所述第二位置节点为缓存了节点标识的位置节点,将所述第二位置节点确定为所述目标位置节点;
响应于所述第二位置节点为空白节点,根据所述第二位置节点,获取与所述第二位置节点相邻的位置节点,直到获取到缓存了节点标识的位置节点为止,将缓存了节点标识的位置节点作为所述目标位置节点。
4.一种页面渲染方法,其特征在于,所述方法包括:
接收渲染服务器转发的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
响应于根据所述页面标识,确定本地存储所述目标页面的第一静态资源,对所述第一渲染请求进行修改,得到第二渲染请求,所述第二渲染请求用于从网页服务器获取所述目标页面的动态资源;
向所述网页服务器发送所述第二渲染请求,接收所述网页服务器基于所述第二渲染请求返回的渲染响应,所述渲染响应至少携带所述目标页面的动态资源;
从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源,用于所述渲染服务器对所述目标页面进行渲染。
5.根据权利要求4所述的方法,其特征在于,所述对所述第一渲染请求进行修改,得到第二渲染请求,包括:
获取已存储的所述目标页面的静态资源的最新缓存时间;
在所述第一渲染请求中增加请求字段,将所述请求字段的字段值设置为所述最新缓存时间,得到所述第二渲染请求。
6.根据权利要求4所述的方法,其特征在于,所述从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据之前,所述方法还包括:
响应于所述渲染响应还携带目标状态码,执行所述从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据的步骤。
7.一种页面渲染装置,其特征在于,所述装置包括:
第一接收单元,被配置为执行接收终端的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
第一确定单元,被配置为执行根据所述页面标识,确定用于处理所述第一渲染请求的目标缓存节点的节点标识;
转发单元,被配置为执行根据所述节点标识,向所述目标缓存节点转发所述第一渲染请求,所述目标缓存节点用于根据所述页面标识,从本地缓存中获取所述目标页面的第一静态资源和从网页服务器中获取所述目标页面的动态资源;
第二接收单元,被配置为执行接收所述目标缓存节点返回的所述目标页面的第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源;
渲染单元,被配置为根据所述第一渲染数据,对所述目标页面进行渲染。
8.一种页面渲染装置,其特征在于,所述装置包括:
第三接收单元,被配置为执行接收渲染服务器转发的第一渲染请求,所述第一渲染请求携带待渲染的目标页面的页面标识;
第四确定单元,被配置为响应于根据所述页面标识,执行确定本地存储所述目标页面的第一静态资源,对所述第一渲染请求进行修改,得到第二渲染请求,所述第二渲染请求用于从网页服务器获取所述目标页面的动态资源;
发送单元,被配置为执行向所述网页服务器发送所述第二渲染请求,接收所述网页服务器基于所述第二渲染请求返回的渲染响应,所述渲染响应至少携带所述目标页面的动态资源;
第二获取单元,被配置为执行从本地缓存中获取所述第一静态资源,向所述渲染服务器返回第一渲染数据,所述第一渲染数据包括所述动态资源和所述第一静态资源,用于所述渲染服务器对所述目标页面进行渲染。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现如权利要求1-3或权利要求4-6任一项所述的页面渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以实现如权利要求1-3或权利要求4-6任一项所述的页面渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010526317.4A CN111708594B (zh) | 2020-06-09 | 2020-06-09 | 页面渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010526317.4A CN111708594B (zh) | 2020-06-09 | 2020-06-09 | 页面渲染方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708594A true CN111708594A (zh) | 2020-09-25 |
CN111708594B CN111708594B (zh) | 2023-08-29 |
Family
ID=72539902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010526317.4A Active CN111708594B (zh) | 2020-06-09 | 2020-06-09 | 页面渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708594B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528274A (zh) * | 2020-12-24 | 2021-03-19 | 微医云(杭州)控股有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113468456A (zh) * | 2021-07-12 | 2021-10-01 | 工银科技有限公司 | 网页渲染方法及装置、电子设备和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287982A (ja) * | 2009-06-10 | 2010-12-24 | Panasonic Corp | Ip通信装置、通信システム、判定方法およびプログラム |
CN104714982A (zh) * | 2013-12-17 | 2015-06-17 | 阿里巴巴集团控股有限公司 | 一种网页的加载方法和系统 |
CN107315791A (zh) * | 2017-06-14 | 2017-11-03 | 广州酷狗计算机科技有限公司 | 静态资源缓存方法、装置及计算机可读存储介质 |
CN111049902A (zh) * | 2019-09-16 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据存储方法、装置、存储介质和设备 |
CN111104587A (zh) * | 2018-10-26 | 2020-05-05 | 北京金山云网络技术有限公司 | 网页显示方法、装置和服务器 |
-
2020
- 2020-06-09 CN CN202010526317.4A patent/CN111708594B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287982A (ja) * | 2009-06-10 | 2010-12-24 | Panasonic Corp | Ip通信装置、通信システム、判定方法およびプログラム |
CN104714982A (zh) * | 2013-12-17 | 2015-06-17 | 阿里巴巴集团控股有限公司 | 一种网页的加载方法和系统 |
CN107315791A (zh) * | 2017-06-14 | 2017-11-03 | 广州酷狗计算机科技有限公司 | 静态资源缓存方法、装置及计算机可读存储介质 |
CN111104587A (zh) * | 2018-10-26 | 2020-05-05 | 北京金山云网络技术有限公司 | 网页显示方法、装置和服务器 |
CN111049902A (zh) * | 2019-09-16 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据存储方法、装置、存储介质和设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528274A (zh) * | 2020-12-24 | 2021-03-19 | 微医云(杭州)控股有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112528274B (zh) * | 2020-12-24 | 2023-09-22 | 微医云(杭州)控股有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113468456A (zh) * | 2021-07-12 | 2021-10-01 | 工银科技有限公司 | 网页渲染方法及装置、电子设备和计算机可读存储介质 |
CN113468456B (zh) * | 2021-07-12 | 2022-04-22 | 工银科技有限公司 | 网页渲染方法及装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111708594B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107623729B (zh) | 一种缓存方法、设备及缓存服务系统 | |
CN108696895A (zh) | 资源获取方法、装置及系统 | |
US10645192B2 (en) | Identifying content files in a cache using a response-based cache index | |
CN109167840B (zh) | 一种任务推送方法、节点自治服务器及边缘缓存服务器 | |
CN111708594B (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN113452780B (zh) | 针对客户端的访问请求处理方法、装置、设备及介质 | |
CN112565406B (zh) | 一种灰度发布方法、灰度发布系统及电子设备 | |
CN107070988A (zh) | 报文处理方法及装置 | |
CN109451089A (zh) | 一种访问方法、装置、计算机设备及计算机存储介质 | |
CN109873855A (zh) | 一种基于区块链网络的资源获取方法和系统 | |
CN113055503B (zh) | IPv6网页链接处理方法、装置、设备及可读存储介质 | |
CN109413224B (zh) | 报文转发方法和装置 | |
US20220263759A1 (en) | Addressing method, addressing system, and addressing apparatus | |
US10333966B2 (en) | Quarantining an internet protocol address | |
CN105760396B (zh) | 一种网页加载方法及装置 | |
US11683316B2 (en) | Method and device for communication between microservices | |
CN103685367A (zh) | 离线下载系统和方法 | |
CN111125580B (zh) | 网络资源获取方法、装置、电子设备及存储介质 | |
JPH1198162A (ja) | 連続データアクセス方法 | |
CN109218454A (zh) | Dns请求的响应方法及dns服务器 | |
CN112637339A (zh) | 网络加速方法及装置、电子设备及存储介质 | |
CN112968980B (zh) | 一种概率确定方法、装置、存储介质及服务器 | |
CN115840862B (zh) | 一种网络靶场大规模场景中靶标的快速查询方法与系统 | |
CN114584623B (zh) | 流量请求清理方法、装置、存储介质以及计算机设备 | |
CN114268605B (zh) | 一种智能dns实现方法、装置及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |