用于协同浏览被采纳样式表的方法和设备与流程

摘要: 该领域涉及通信会话,并且更具体地,涉及一种用于优化对含有具有被采纳样式表的影子dom区域的网页的协同浏览的方法和设备。背景技术:技术实现思路1、第一浏览器的内容...
用于协同浏览被采纳样式表的方法和设备与流程

该领域涉及通信会话,并且更具体地,涉及一种用于优化对含有具有被采纳样式表的影子dom区域的网页的协同浏览的方法和设备。

背景技术:

技术实现思路

1、第一浏览器的内容可在地理上遥远的位置处的第二浏览器中共享并再现。这样做的一种方式是使得描述第一浏览器的内容的文档对象模型(dom)被转发到第二浏览器。第二浏览器使用从第一浏览器接收到的dom来重新创建第一浏览器的内容。在一对计算机之间实现dom共享在本文中被称为协同浏览。

2、xml或html文档的文档对象模型(dom)是一种树状结构,其中每个dom元素是表示文档的一部分的对象。可在dom内创建作用域区域,该作用域区域具有对树的其余部分不可见的dom元素。此类dom元素在本文中被称为“影子dom元素”,并且dom的含有影子dom元素的区域在本文中被称为“影子dom区域”。全局属性不适用于影子dom区域中的影子dom元素,这使得能够复用dom的部分,而不用考虑dom的其他属性会如何影响影子dom区域的影子dom元素。影子dom区域可被嵌套,使得在给定的影子dom区域内可存在内部影子dom区域,并且嵌套可达到任何期望的层级。

3、样式表用于对网页的布局格式化。例如,层叠样式表(css)声明使得有可能控制颜色、字体、文本大小以及网站外观的许多其他方面。构造样式表以编程方式创建,并且提供一种方式来设置要供文档使用的构造样式表的数组。构造样式表可与一个或多个影子根实例共享。例如,可使用shadowroot接口的adoptstylesheets属性来设置要供影子dom子树使用的构造样式表的数组。

4、当协同浏览具有被采纳样式表的网页时,样式表从访客到代理的传输可能会导致协同浏览会话的双方出现性能问题。具体地,在具有大量被采纳样式表的页面上,影子dom元素从访客到代理的传输可能会消耗显著的资源。

5、根据一些实施方案,提供了一种用于优化对含有具有被采纳样式表的影子dom区域的网页的协同浏览的方法和设备。在一些实施方案中,当协同浏览会话上的访客传输访客dom时,每当有被采纳样式表附加到影子dom元素时,访客都会传输styleid而不是被采纳样式表的实际css。在一些实施方案中,styleid根据被采纳样式表中所含的css的哈希值创建。传输styleid而不是实际css节省了访客的相当大的带宽,因为访客只需要发送用作css的标识符的css的哈希值,而不是css的实际内容。

6、当代理接收到将styleid与影子dom元素相关联的消息时,代理进行检查以确定代理是否已经接收到与该styleid相关联的css。在代理本地存储有css的情况下,代理将css应用于dom元素。在代理本地未存储有与styleid相关联的css的情况下,代理将styleid传输给ucam,以向ucam请求与styleid相关联的css的副本。

7、当ucam接收到针对由styleid标识的被采纳样式表的css的请求时,它确定在其css数据存储库中是否具有被采纳样式表的本地存储副本。在ucam在其css数据存储库中具有被采纳样式表的本地存储副本的情况下,ucam直接利用所请求的css对代理进行响应。响应于确定ucam不具有被采纳样式表css的本存储副本,ucam向访客发送构造样式表请求。

8、访客协同浏览javascript接收具有styleid的构造样式表请求消息,该styleid标识被采纳样式表中访客协同浏览javascript已将其检测为附加到dom的影子根元素中的一个上的一个被采纳样式表。访客协同浏览javascript针对该styleid检查其影子dom状态,并且使用资源上传消息将与styleid相关联的css上传到ucam。

9、ucam将其从访客接收到的css本地存储在css数据存储库中,然后ucam向代理返回被采纳样式表。然后,来自该代理或来自其他协同浏览会话上的其他代理的针对被采纳样式表的后续请求能够通过访问css数据存储库中所含的css而直接从ucam服务得到服务。

10、通过优化处置样式表的方式,可大幅减少在协同浏览会话上必须由访客传输的构造样式表的数量,从而降低对访客侧性能的影响。代理侧性能得到提升,因为可从本地浏览器缓存或服务器侧缓存中检索构造样式表,而不需要等待访客上传。通过启用ucam对被采纳css的复用,可在给定会话内复用被采纳样式表,在不同会话上复用,并且对不同的页面和代理复用所述被采纳样式表。由于给定网站可能被众多访客和代理访问,并且针对给定网站的协同浏览会话通常包括相同的被采纳样式表,因此使得ucam能够跨协同浏览会话复用被采纳样式表可导致访客处资源使用的显著减少。此外,通过使访客和代理使用styleid(诸如根据css创建的哈希值)来引用被采纳样式表,而不是重复传输被采纳样式表的css,与关联于要求代理等待访客上传样式表的时延相比,可降低代理的时延,因为使得代理能够从本地浏览器缓存或服务器侧缓存加载样式表,从而提高代理和访客两者的性能。

11、在一些实施方案中,一种用于优化对含有具有被采纳样式表的影子dom区域的网页的协同浏览的方法包括:在第一参与计算机与第二参与计算机之间建立协同浏览会话,其中所述第一参与计算机处的第一浏览器的文档对象模型(dom)被传输给所述第二参与计算机,并且在所述第二参与计算机处使用以在第二浏览器处重新创建所述第一浏览器的内容,所述dom包括多个dom元素;由具有被采纳样式表的所述第一参与计算机标识dom元素,所述被采纳样式表包括对应的层叠样式表(css)内容集合;以及创建styleid以唯一地标识与所述被采纳样式表相对应的所述完整的css内容集合。所述方法还包括:由所述第一参与计算机在所述协同浏览会话上转发所述dom元素和所述styleid,而不转发与所述被采纳样式表相对应的所述css内容集合;由所述第一参与计算机接收针对所述css内容集合的请求;以及仅响应于接收到针对所述css内容集合的所述请求,由所述第一参与计算机在所述协同浏览会话上传输所述css内容集合。

12、在一些实施方案中,由所述第一参与计算机创建所述styleid包括将哈希函数应用于与所述被采纳样式表相对应的css参数的完整集合。

13、在一些实施方案中,所述方法还包括由所述第一参与计算机存储所述styleid和所述css内容集合。

14、在一些实施方案中,在由所述第一参与计算机传输所述一个或多个css内容的集合之后,由促进所述协同浏览会话的服务器存储所述styleid和所述css内容集合。在一些实施方案中,促进所述协同浏览会话的所述服务器被配置为对由所述第二参与计算机发送的针对与styleid相对应的css内容集合的请求进行响应。在一些实施方案中,促进所述协同浏览会话的所述服务器被配置为存储来自多个协同浏览会话的styleid和对应的css,并且对来自所述协同浏览会话上的所述第二参与计算机的针对在所述多个协同浏览会话上学习到的与styleid相对应的css内容集合的请求进行响应。

15、在一些实施方案中,所述方法还包括由所述第二参与计算机存储所述styleid和所述css内容集合。在一些实施方案中,所述方法还包括:由所述第二参与计算机在所述协同浏览会话上接收所述styleid;由所述第二参与计算机确定与所述styleid相对应的所述css内容集合为所述第二参与计算机所已知;以及在不请求在所述协同浏览会话上传输所述对应的css内容集合的情况下由所述第二参与计算机将所述css内容本地应用于所述dom元素。