CN101963987A - 一种用于生成网页文件和加载网页文件的方法与设备 - Google Patents
一种用于生成网页文件和加载网页文件的方法与设备 Download PDFInfo
- Publication number
- CN101963987A CN101963987A CN 201010298643 CN201010298643A CN101963987A CN 101963987 A CN101963987 A CN 101963987A CN 201010298643 CN201010298643 CN 201010298643 CN 201010298643 A CN201010298643 A CN 201010298643A CN 101963987 A CN101963987 A CN 101963987A
- Authority
- CN
- China
- Prior art keywords
- end assemblies
- web page
- unit
- page files
- log
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明的目的是提供一种用于生成根据关键字加载前端组件的网页文件的方法和设备,以及一种用于加载网页文件的方法和设备。其中,网页生成设备创建一个网页文件,其中包括一个基础文件;在该基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;并根据前端组件的注册信息,在该网页文件的单元中添加与前端组件的注册信息相对应的关键字。网页加载设备根据网页文件中单元的关键字加载与之相对应的前端组件,并将初始化结果提供给用户。与现有技术相比,本发明通过根据关键字加载前端组件的生成网页文件与加载网页文件,不仅缩短了页面交互时间,提升了用户使用体验,还简化了前端通用组件的使用,提高了前端组件的开发效率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种用于生成根据关键字加载前端组件的网页文件的技术和一种用于加载网页文件的技术。
背景技术
随着互联网技术的发展和应用,互联网业已成为人们的学习、工作、娱乐和生活的重要平台之一。涉及网页生成与加载的网页技术虽然很少为普通用户了解,却在很大程度上左右着人们的使用体验。
而在现有网页技术中,当涉及多个需要加载的前端组件时,需要在网页文件中引入多个脚本或链接标签,这不仅了影响了人们与网页的交互速度,也降低了前端组件的开发效率。
发明内容
本发明的目的是提供一种用于生成根据关键字加载前端组件的网页文件的方法和设备,以及一种用于加载网页文件的方法和设备。
根据本发明的一个方面,提供了一种用于生成根据关键字加载前端组件的网页文件的方法,该方法包括以下步骤:
A 创建一个网页文件,其中包括一个基础文件;
B 在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;
C 根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。
根据本发明的另一方面,还提供了一种在用户设备端用于加载网页文件的方法,该方法包括以下步骤:
a 接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字;
b 根据所述网页文件,生成与所述网页文件相对应的文档对象模型;
c 根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元;
d 根据所述单元的关键字,加载与所述单元相对应的前端组件;
e 根据所述前端组件,初始化所述单元,以获取初始化结果;
f 将所述初始化结果提供给该用户设备。
根据本发明的一个方面,提供了一种用于生成根据关键字加载前端组件的网页文件的设备,该设备包括:
创建装置,用于创建一个网页文件,其中包括一个基础文件;
注册装置,用于在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;
添加装置,用于根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。
根据本发明的另一方面,还提供了一种用于加载网页文件的设备,该设备包括:
接收装置,用于接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字;
生成装置,用于根据所述网页文件,生成与所述网页文件相对应的文档对象模型;
获取装置,用于根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元;
加载装置,用于根据所述单元的关键字,加载与所述单元相对应的前端组件;
初始化装置,用于根据所述前端组件,初始化所述单元,以获取初始化结果;
提供装置,用于将所述初始化结果提供给该用户设备。
根据本发明的又一方面,还提供了一种浏览器,包括上述用于加载网页文件的装置。
根据本发明的再一方面,还提供了一种浏览器插件,包括上述用于加载网页文件的装置。
与现有技术相比,本发明通过根据关键字加载前端组件的生成网页文件与加载网页文件,不仅缩短了页面交互时间,提升了用户使用体验,还简化了前端通用组件的使用,提高了前端组件的开发效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的用于生成根据关键字加载前端组件的网页文件的设备示意图;
图2示出根据本发明另一个方面的用于加载网页文件的设备示意图;
图3示出根据本发明一个方面的用于生成根据关键字加载前端组件的网页文件的方法流程图;
图4示出根据本发明另一个方面的用于加载网页文件的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的用于生成根据关键字加载前端组件的网页文件的网页生成设备1。其中,网页生成设备1包括但不限于网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
网页生成设备1中包括创建装置11、注册装置 12和添加装置13。
其中,创建装置11用于创建一个网页文件,其中包括一个基础文件。具体地,创建装置11通过页面技术,如JSP、ASP或PHP,将需要生成网页的页面内容创建为一个网页文件,并在此网页文件中包括一个基础文件。例如,当用户提交了一个页面访问请求,服务器端将获取给页面访问请求所对应的页面内容,包括但不限于数据库查询结果和搜索结果;创建装置11通过JSP、ASP或PHP等页面技术,创建一个包含该页面内容的网页文件,并在该网页文件中包括一个基础文件。本领域技术人员应能理解上述几种页面技术仅为举例,其他现有的或今后可能出现的页面技术如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。本领域技术人员还应能理解上述创建网页文件的技术仅为举例,其他现有的或今后可能出现的创建网页文件的技术如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
注册装置12用于在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息。具体地,注册装置12根据注册装置11所提供的页面文件中的基础文件,在该基础文件中注册一个或多个前端组件,如该页面文件在加载时需要使用的前端组件或者为后续拓展该页面文件而预留的前端组件,以获得这些前端组件的注册信息,如前端组件的名称、类型和存放路径等。例如,假设用户需要在该页面文件加载时使用前端组件“jquery.js”,并为该页面文件预留组件“dialog.js”;注册装置12将在该页面文件所包含的基础文件中对这两个前端组件进行注册(详见下面的代码),并获得该前端组件的注册信息有前端组件“jquery.js”的名称为“base”、类型为“js”、存放路径为“js/jquery.js”,前端组件“dialog.js”的名称为“dialog”、类型为“js”、存放路径为“js/ dialog.js”。本领域技术人员应能理解上述注册前端组件的技术仅为举例,其他现有的或今后可能出现的注册前端组件的技术如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
…
mini.moduler.addModule({name:"base",type:"js",require:"js/jquery.js"});
mini.moduler.addModule({name:"dialog","type":"js","require":"js/dialog.js",depend:"dialogBase"});
…
添加装置13用于根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。具体地,添加装置13根据注册装置12所提供的前端组件的注册信息,在创建装置11所提供的网页文件的单元中添加与这些前端组件的注册信息相对应的关键字。接上例,假设该网页文件为html格式,需要在该html网页文件的注释标签(html元素)中添加与前端组件“dialog.js”的注册信息相对应的关键字“dialog”,则有
<!--miniloader:dom:event:dialog-->
或者,需要在该html网页文件的html元素class中添加与前端组件“dialog.js”的注册信息相对应的关键字“dialog”,则有
class:<div class=“miniloader-dom-event-dialog”>…</div>
<span class=”module-slider”> </span>
本领域技术人员应能理解上述在网页文件的单元中添加与前端组件的注册信息相对应的关键字的方式仅为举例,其他现有的或今后可能出现的在网页文件的单元中添加与前端组件的注册信息相对应的关键字的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网页文件中的单元可以是该网页文件中现有的,也可以是新增加的,其中,所述单元包括但不限于元素、元素属性。在此,所述关键字可以是所述前端组件的注册信息的全部、一部分或者编码。
优选地,网页生成设备1的各个装置之间是持续不断工作的。具体地,创建装置11创建一个网页文件,其中包括一个基础文件;注册装置12在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;添加装置13根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。在此,本领域技术人员应理解“持续”是指各装置分别按照设定的或实时调整的工作模式要求进行网页文件创建、前端组件注册和关键字添加,直至该网页生成设备1停止生成网页。
优选地,添加装置13还用于根据所述前端组件的注册信息,进行编码处理,以获取编码结果;根据所述编码结果,在所述网页文件的单元中添加与所述前端组件相对应的关键字。具体地,添加装置13对注册装置12所提供的前端组件的注册信息,进行编码处理,例如哈希编码,以获取编码结果;根据所述编码结果,在创建装置11所提供的网页文件的单元中添加与这些前端组件的注册信息相对应的关键字,例如取该编码结果为关键字。例如,对于注册信息较长的前端组件,可以通过哈希算法,将其注册消息编码压缩成为固定长度的编码结果,取该编码结果作为关键字,并将其添加至该网页文件的单元中。本领域技术人员应能理解,所述编码处理的方式仅为举例,其他现有的或今后可能出现的编码处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述前端组件的注册信息包括但不限于,以下至少任一种:所述前端组件的名称、所述前端组件的类型、所述前端组件的存放路径或所述前端组件间依赖关系。接前例,前端组件“jquery.js” 的注册信息有名称“base”、类型“js”、存放路径“js/jquery.js”,前端组件 “dialog.js” 的注册信息有名称“dialog”、类型“js”、存放路径“js/ dialog.js”、依赖于“dialogBase”。本领域技术人员应能理解,所述前端组件的注册信息仅为举例,其他现有的或今后可能出现的前端组件的注册信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,所述网页文件基于以下任一种文件格式:HTML、XHTML或XML。其中,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。XHTML是The Extensible HyperText Markup Language可扩展标识语言的缩写。目前推荐遵循的是W3C于2000年1月26日推荐XML1.0(参考http://www.w3.org/TR/xhtml1),XML虽然数据转换能力强大,完全可以替代HTML,但难以处理既有的成千上万的基于HTML语言设计的站点,因此,在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML,实现HTML向XML的过渡。XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月6日发布的XML1.0,和HTML一样,XML同样来源于SGML,但XML是一种能定义其他语言的语言。XML最初设计的目的是弥补HTML的不足,以强大的扩展性满足网络信息发布的需要,后来逐渐用于网络数据的转换和描述。本领域技术人员应能理解,所述网页文件的文件格式仅为举例,其他现有的或今后可能出现的网页文件的文件格式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述基础文件基于JavaScript、ASP、PHP、Python或VBScript等任一种脚本语言。其中,JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,例如响应用户的各种操作,是一种动态、弱类型、基于原型的语言,内置支持类。不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。ASP(Active Server Pages,动态服务器网页),是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM(Component Object Model,组件对象模型)组件等,利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。PHP(Hypertext Preprocessor,超级文本预处理语言)是一种在服务器端执行的嵌入HTML文档的脚本语言,主要用于处理动态网页,也包含了命令行运行接口(command line interface),或者产生图形用户界面(GUI)程序,可以在几乎所有流行的服务器、操作系统、平台上运行,也可以和许多数据库系统结合。Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,具有非常简捷而清晰的语法特点,适合完成各种高级任务,几乎可以在所有的操作系统中运行。VBScript(Visual Basic Script),即Visual Basic 脚本语言,有时也被缩写为VBS,是ASP动态网页默认的编程语言,配合ASP内建对象和ADO(ActiveX Data Object,活动数据访问接口)对象,用户很快就能掌握访问数据库的ASP动态网页开发技术。在实践中,VBScript一般用于以下三个方面:1)Windows操作系统;2)网页浏览器(客户端的VBS)3)网页服务器(服务器方面的VBS)。本领域技术人员应能理解,所述基础文件所基于的脚本语言仅为举例,其他现有的或今后可能出现的所述基础文件所基于的脚本语言如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
图2示出根据本发明另一个方面的用于加载网页文件的网页加载设备2。网页加载设备2可以是任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或手写设备等方式进行人机交互的电子产品,例如计算机、手机、PDA、掌上电脑PPC或IPTV等。
网页加载设备2中包括接收装置21、生成装置22、获取装置23、加载装置24、初始化装置25和提供装置26。
其中,接收装置21用于接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字。具体地,接收装置21通过网络设备提供的应用程序接口(API)或约定的网络传输协议(如http或https),接收自网络设备主动推送或应请求发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字。本领域技术人员应能理解上述接收网页文件的方式仅为举例,其他现有的或今后可能出现的接收网页文件的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,该网页文件的文件格式包括但不限于HTML、XHTML或XML。
生成装置22用于根据所述网页文件,生成与所述网页文件相对应的文档对象模型。具体地,生成装置22根据接收装置21所提供的网页文件,例如通过遍历该网页文件并依据其文件格式进行语法解析,生成与该网页文件相对应的文档对象模型。例如,假设接收装置21所提供的网页文件是html格式的,生成装置22遍历该网页文件,并依据html的语法,生成与该网页文件相对应的文档对象模型,例如得到一个树形结构的文档,<html>是根(root)节点,<head>、<title>、<body>是<html>的子(children)节点,互相之间是兄弟(sibling)节点;<body>下面才是子节点<table>、<span>、<p>等。本领域技术人员应能理解上述生成文档对象模型的方式仅为举例,其他现有的或今后可能出现的生成文档对象模型的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
获取装置23用于根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元。具体地,获取装置23根据生成装置22所提供的文档对象模型,遍历该文档对象模型中的每一个节点,并确定该网页文件中与该节点对应的单元。例如,在对象文档模型中,对于每一个节点(Node),定义了一系列属性和方法,来方便遍历整个文档对象模型;获取装置23用parentNode属性(父节点)和childNodes[]数组(子节点)可以在文档对象模型中上下移动;通过遍历childNodes[]数组(子节点)或者使用firstChild(首个子节点)和nextSibling(下一个兄弟节点)属性进行循环操作,也可以使用lastChild(最后一个子节点)和previousSibling(前一个兄弟节点)进行逆向循环操作,也可以枚举指定节点的子节点;而调用appendChild()(插入子节点)、insertBefore()(在之前插入)、removeChild()(删除子节点)、replaceChild()(替换子节点)方法可以改变一个节点的子节点从而改变文档对象模型。本领域技术人员应能理解上述获取与所述节点相对应的单元的方式仅为举例,其他现有的或今后可能出现的获取与所述节点相对应的单元的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
加载装置24用于根据所述单元的关键字,加载与所述单元相对应的前端组件。具体地,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该前端组件。例如,假设一单元的关键字为“dialog”,该基础文件中有注册信息如下:
mini.moduler.addModule({name:"dialog","type":"js","require":"js/dialog.js",depend:"dialogBase"});
加载装置24据此进行匹配查询,确定与该单元相对应的前端组件为“dialog.js”,并根据该前端组件的路径信息从该路径加载该前端组件。本领域技术人员应能理解上述加载与单元相对应的前端组件的方式仅为举例,其他现有的或今后可能出现的加载与单元相对应的前端组件的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
初始化装置25用于根据所述前端组件,初始化所述单元,以获取初始化结果。具体地,初始化装置25根据加载装置24所提供的前端组件,对该单元进行初始化,例如执行前端组件中所包括的脚本代码、获取该前端组件所荷载的内容,以获取初始化结果,该初始化结果包括但不限于文本、图片、视频等内容。本领域技术人员应能理解上述单元初始化的方式仅为举例,其他现有的或今后可能出现的单元初始化的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
提供装置26用于将所述初始化结果提供给该用户设备。具体地,提供装置26将初始化装置25所提供的初始化结果,通过页面技术,如JSP、ASP或PHP,按一定顺序和格式提供给该用户设备,供用户进行浏览。优选地,提供装置26还结合其他计算机提供人可读信息的技术手段,如扬声器播放等,将所述初始化结果提供给该用户设备。本领域技术人员应能理解上述将初始化结果提供给用户设备的方式仅为举例,其他现有的或今后可能出现的将初始化结果提供给用户设备的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,网页加载设备2的各个装置之间是持续不断工作的。具体地,接收装置21接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字;生成装置22根据所述网页文件,生成与所述网页文件相对应的文档对象模型;获取装置23根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元;加载装置24根据所述单元的关键字,加载与所述单元相对应的前端组件;初始化装置25根据所述前端组件,初始化所述单元,以获取初始化结果;提供装置26用于将所述初始化结果提供给该用户设备。在此,本领域技术人员应理解“持续”是指各装置分别按照设定的或实时调整的工作模式要求进行网页文件接收、文档对象模型生成、单元获取、前端组件加载、单元初始化和初始化结果提供,直至该网页加载设备2停止加载网页。
优选地,加载装置24还用于根据所述单元的关键字,异步加载与所述单元相对应的前端组件。具体地,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并异步加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,异步加载该前端组件。在此,前端组件的异步加载包括一个或多个前端组件的同时并行下载;相对于同步加载,异步加载可以提高下载速度,改善用户使用体验。例如,假设两个单元的关键字分别为“dialog”和“base”,该基础文件中有注册信息如下:
mini.moduler.addModule({name:"dialog","type":"js","require":"js/dialog.js",depend:"dialogBase"});
mini.moduler.addModule({name:"base",type:"js",require:"js/jquery.js"});
加载装置24据此进行匹配查询,确定与这两个单元相对应的前端组件分别为“dialog.js”和“jquery.js”,并根据这两前端组件的路径信息分别从指定路径同时加载该两个前端组件,例如并行下载这两个前端组件。本领域技术人员应能理解上述异步加载与单元相对应的前端组件的方式仅为举例,其他现有的或今后可能出现的异步加载与单元相对应的前端组件的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,加载装置24还用于根据所述单元的关键字,加载与所述单元相对应的前端组件;根据所述前端组件,依次检查所述前端组件的祖先前端组件序列的加载状态;其中,所述初始化装置还用于若所述祖先前端组件均已加载,则依次初始化所述祖先前端组件与所述前端组件所对应的单元,以获取初始化结果。具体地,加载装置24根据加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并异步加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,异步加载该前端组件;然后,利用该前端组件的注册信息中的依赖信息,查询该前端组件的父亲前端组件及其加载状态,然后再对该父亲前端组件采用类似的方法,查询该父亲前端组件的父亲前端组件(即该前端组件的祖父前端组件)及其加载状态,直至确定该前端组件的所有祖先前端组件的加载状态。随后,按照最高级祖先前端组件至该前端组件的降序,依次初始化各前端组件所对应的单元,以获取初始化结果。本领域技术人员应能理解上述检查祖先前端组件序列的加载状态的方式仅为举例,其他现有的或今后可能出现的检查祖先前端组件序列的加载状态的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,加载装置24还用于根据所述单元的关键字,进行解码处理,以获得解码结果;根据所述解码结果,加载与所述单元相对应的前端组件。具体地,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,进行解码处理,例如哈希解码,以获得解码结果;根据所述解码结果,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该前端组件。例如,假设对于注册信息较长的前端组件,通过哈希算法,将其注册消息编码压缩成为固定长度的编码结果,取该编码结果作为关键字,并将其添加至该网页文件的单元中;加载装置24对该关键字采用与该哈希算法相适应的解码算法,获得解码结果;根据所述解码结果,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该前端组件。本领域技术人员应能理解,上述解码处理的方式仅为举例,其他现有的或今后可能出现的解码处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,所述前端组件包括但不限于以下至少任一项:a)JavaScript文件;b)CSS文件;c)图片;d)文字;e)视频;f)音频;g)动画。具体地,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该前端组件,所述前端组件包括但不限于以下任一项:a)JavaScript文件;b)CSS文件;c)图片;d)文字;e)视频;f)音频;g)动画。以CSS文件为例,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的CSS文件的注册信息,查询匹配与该单元相对应的CSS文件,并加载该CSS文件,例如通过该CSS文件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该CSS文件,以控制网页的外观。此处,CSS(Cascading Style Sheet,层叠样式表)是一组格式设置规则,用于控制Web页面的外观,通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在HTML文档中,而用于定义表现形式的CSS规则则存放在另一个文件中或HTML文档的某一部分,通常为文件头部分。本领域技术人员应能理解,所述前端组件仅为举例,其他现有的或今后可能出现的前端组件如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,上述用于加载网页文件的装置可以与现有的浏览器相结合,构成一种新的浏览器,现有的浏览器可以是例如微软的Internet Explorer、Mozilla的Firefox、Apple的Safari、Opera、HotBrowser、Google的Chrome、Avant浏览器、360安全浏览器、世界之窗、腾讯TT、搜狗浏览器、傲游浏览器等。
更优选地,上述用于加载网页文件的装置还可以与现有的浏览器插件相结合,构成一种新的浏览器插件,现有的浏览器插件可以是例如3721插件、雅虎插件、百度、中搜、QQ、搜狗、新浪、天下搜索、CNNIC、Google等。
图3示出根据本发明一个方面的用于生成根据关键字加载前端组件的网页文件的方法流程图。
在步骤S11中,网页生成设备1创建一个网页文件,其中包括一个基础文件。其中,网页生成设备1包括但不限于网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。具体地,在步骤S11中,网页生成设备1通过页面技术,如JSP、ASP或PHP,将需要生成网页的页面内容创建为一个网页文件,并在此网页文件中包括一个基础文件。例如,当用户提交了一个页面访问请求,服务器端将获取给页面访问请求所对应的页面内容,包括但不限于数据库查询结果和搜索结果;在步骤S11中,网页生成设备1通过JSP、ASP或PHP等页面技术,创建一个包含该页面内容的网页文件,并在该网页文件中包括一个基础文件。本领域技术人员应能理解上述几种页面技术仅为举例,其他现有的或今后可能出现的页面技术如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。本领域技术人员还应能理解上述创建网页文件的技术仅为举例,其他现有的或今后可能出现的创建网页文件的技术如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S12中,网页生成设备1在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息。具体地,在步骤S12中,网页生成设备1根据在步骤S11中所提供的页面文件中的基础文件,在该基础文件中注册一个或多个前端组件,如该页面文件在加载时需要使用的前端组件或者为后续拓展该页面文件而预留的前端组件,以获得这些前端组件的注册信息,如前端组件的名称、类型和存放路径等。例如,假设用户需要在该页面文件加载时使用前端组件“jquery.js”,并为该页面文件预留组件“dialog.js”;在步骤S12中,网页生成设备1将在该页面文件所包含的基础文件中对这两个前端组件进行注册(详见下面的代码),并获得该前端组件的注册信息有前端组件“jquery.js”的名称为“base”、类型为“js”、存放路径为“js/jquery.js”,前端组件“dialog.js”的名称为“dialog”、类型为“js”、存放路径为“js/ dialog.js”。本领域技术人员应能理解上述注册前端组件的技术仅为举例,其他现有的或今后可能出现的注册前端组件的技术如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
…
mini.moduler.addModule({name:"base",type:"js",require:"js/jquery.js"});
mini.moduler.addModule({name:"dialog","type":"js","require":"js/dialog.js",depend:"dialogBase"});
…
在步骤S13中,网页生成设备1根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。具体地,在步骤S13中,网页生成设备1根据在步骤S12中所提供的前端组件的注册信息,在在步骤S11中所提供的网页文件的单元中添加与这些前端组件的注册信息相对应的关键字。接上例,假设该网页文件为html格式,需要在该html网页文件的注释标签(html元素)中添加与前端组件“dialog.js”的注册信息相对应的关键字“dialog”,则有
<!--miniloader:dom:event:dialog-->
或者,需要在该html网页文件的html元素class中添加与前端组件“dialog.js”的注册信息相对应的关键字“dialog”,则有
class:<div class=“miniloader-dom-event-dialog”>…</div>
<span class=”module-slider”> </span>
本领域技术人员应能理解上述在网页文件的单元中添加与前端组件的注册信息相对应的关键字的方式仅为举例,其他现有的或今后可能出现的在网页文件的单元中添加与前端组件的注册信息相对应的关键字的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网页文件中的单元可以是该网页文件中现有的,也可以是新增加的,其中,所述单元包括但不限于元素、元素属性。在此,所述关键字可以是所述前端组件的注册信息的全部、一部分或者编码。
优选地,上述各个步骤S11-S13之间是持续不断工作的。具体地,在步骤S11中,网页生成设备1创建一个网页文件,其中包括一个基础文件;在步骤S12中,网页生成设备1在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;在步骤S13中,网页生成设备1根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。在此,本领域技术人员应理解“持续”是指各步骤分别按照设定的或实时调整的工作模式要求进行网页文件创建、前端组件注册和关键字添加,直至该网页生成设备1停止生成网页。
优选地,在步骤S13中,网页生成设备1还可以根据所述前端组件的注册信息,进行编码处理,以获取编码结果;根据所述编码结果,在所述网页文件的单元中添加与所述前端组件相对应的关键字。具体地,在步骤S13中,网页生成设备1对在步骤S12中所提供的前端组件的注册信息,进行编码处理,例如哈希编码,以获取编码结果;根据所述编码结果,在在步骤S11中所提供的网页文件的单元中添加与这些前端组件的注册信息相对应的关键字,例如取该编码结果为关键字。例如,对于注册信息较长的前端组件,可以通过哈希算法,将其注册消息编码压缩成为固定长度的编码结果,取该编码结果作为关键字,并将其添加至该网页文件的单元中。本领域技术人员应能理解,所述编码处理的方式仅为举例,其他现有的或今后可能出现的编码处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述前端组件的注册信息包括但不限于,以下至少任一种:所述前端组件的名称、所述前端组件的类型、所述前端组件的存放路径或所述前端组件间依赖关系。接前例,前端组件“jquery.js” 的注册信息有名称“base”、类型“js”、存放路径“js/jquery.js”,前端组件 “dialog.js” 的注册信息有名称“dialog”、类型“js”、存放路径“js/ dialog.js”、依赖于“dialogBase”。本领域技术人员应能理解,所述前端组件的注册信息仅为举例,其他现有的或今后可能出现的前端组件的注册信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,所述网页文件基于以下任一种文件格式:HTML、XHTML或XML。其中,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。XHTML是The Extensible HyperText Markup Language可扩展标识语言的缩写。目前推荐遵循的是W3C于2000年1月26日推荐XML1.0(参考http://www.w3.org/TR/xhtml1),XML虽然数据转换能力强大,完全可以替代HTML,但难以处理既有的成千上万的基于HTML语言设计的站点,因此,在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML,实现HTML向XML的过渡。XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月6日发布的XML1.0,和HTML一样,XML同样来源于SGML,但XML是一种能定义其他语言的语言。XML最初设计的目的是弥补HTML的不足,以强大的扩展性满足网络信息发布的需要,后来逐渐用于网络数据的转换和描述。本领域技术人员应能理解,所述网页文件的文件格式仅为举例,其他现有的或今后可能出现的网页文件的文件格式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述基础文件基于JavaScript、ASP、PHP、Python或VBScript等任一种脚本语言。其中,JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,例如响应用户的各种操作,是一种动态、弱类型、基于原型的语言,内置支持类。不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。ASP(Active Server Pages,动态服务器网页),是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM(Component Object Model,组件对象模型)组件等,利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。PHP(Hypertext Preprocessor,超级文本预处理语言)是一种在服务器端执行的嵌入HTML文档的脚本语言,主要用于处理动态网页,也包含了命令行运行接口(command line interface),或者产生图形用户界面(GUI)程序,可以在几乎所有流行的服务器、操作系统、平台上运行,也可以和许多数据库系统结合。Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,具有非常简捷而清晰的语法特点,适合完成各种高级任务,几乎可以在所有的操作系统中运行。VBScript(Visual Basic Script),即Visual Basic 脚本语言,有时也被缩写为VBS,是ASP动态网页默认的编程语言,配合ASP内建对象和ADO(ActiveX Data Object,活动数据访问接口)对象,用户很快就能掌握访问数据库的ASP动态网页开发技术。在实践中,VBScript一般用于以下三个方面:1)Windows操作系统;2)网页浏览器(客户端的VBS)3)网页服务器(服务器方面的VBS)。本领域技术人员应能理解,所述基础文件所基于的脚本语言仅为举例,其他现有的或今后可能出现的所述基础文件所基于的脚本语言如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
图4示出根据本发明另一个方面的用于加载网页文件的方法流程图。
在步骤S21中,网页加载设备2接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字。其中,网页加载设备2可以是任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或手写设备等方式进行人机交互的电子产品,例如计算机、手机、PDA、掌上电脑PPC或IPTV等。具体地,在步骤S21中,网页加载设备2通过网络设备提供的应用程序接口(API)或约定的网络传输协议(如http或https),接收自网络设备主动推送或应请求发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字。本领域技术人员应能理解上述接收网页文件的方式仅为举例,其他现有的或今后可能出现的接收网页文件的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,该网页文件的文件格式包括但不限于HTML、XHTML或XML。
在步骤S22中,网页加载设备2根据所述网页文件,生成与所述网页文件相对应的文档对象模型。具体地,在步骤S22中,网页加载设备2根据在步骤S21中所提供的网页文件,例如通过遍历该网页文件并依据其文件格式进行语法解析,生成与该网页文件相对应的文档对象模型。例如,假设网页加载设备2在步骤S21中所提供的网页文件是html格式的,在步骤S22中,网页加载设备2遍历该网页文件,并依据html的语法,生成与该网页文件相对应的文档对象模型,例如得到一个树形结构的文档,<html>是根(root)节点,<head>、<title>、<body>是<html>的子(children)节点,互相之间是兄弟(sibling)节点;<body>下面才是子节点<table>、<span>、<p>等。本领域技术人员应能理解上述生成文档对象模型的方式仅为举例,其他现有的或今后可能出现的生成文档对象模型的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S23中,网页加载设备2根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元。具体地,在步骤S23中,网页加载设备2根据在步骤S22中所提供的文档对象模型,遍历该文档对象模型中的每一个节点,并确定该网页文件中与该节点对应的单元。例如,在对象文档模型中,对于每一个节点(Node),定义了一系列属性和方法,来方便遍历整个文档对象模型;此后,在步骤S23中,网页加载设备2用parentNode属性(父节点)和childNodes[]数组(子节点)可以在文档对象模型中上下移动;通过遍历childNodes[]数组(子节点)或者使用firstChild(首个子节点)和nextSibling(下一个兄弟节点)属性进行循环操作,也可以使用lastChild(最后一个子节点)和previousSibling(前一个兄弟节点)进行逆向循环操作,也可以枚举指定节点的子节点;而调用appendChild()(插入子节点)、insertBefore()(在之前插入)、removeChild()(删除子节点)、replaceChild()(替换子节点)方法可以改变一个节点的子节点从而改变文档对象模型。本领域技术人员应能理解上述获取与所述节点相对应的单元的方式仅为举例,其他现有的或今后可能出现的获取与所述节点相对应的单元的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S24中,网页加载设备2根据所述单元的关键字,加载与所述单元相对应的前端组件。具体地,在步骤S24中,网页加载设备2自在步骤S23中接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合在步骤S21中所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该前端组件。例如,假设一单元的关键字为“dialog”,该基础文件中有注册信息如下:
mini.moduler.addModule({name:"dialog","type":"js","require":"js/dialog.js",depend:"dialogBase"});
在步骤S24中,网页加载设备2据此进行匹配查询,确定与该单元相对应的前端组件为“dialog.js”,并根据该前端组件的路径信息从该路径加载该前端组件。本领域技术人员应能理解上述加载与单元相对应的前端组件的方式仅为举例,其他现有的或今后可能出现的加载与单元相对应的前端组件的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S25中,网页加载设备2根据所述前端组件,初始化所述单元,以获取初始化结果。具体地,在步骤S25中,网页加载设备2根据在步骤S24中所提供的前端组件,对该单元进行初始化,例如执行前端组件中所包括的脚本代码、获取该前端组件所荷载的内容,以获取初始化结果,该初始化结果包括但不限于文本、图片、视频等内容。本领域技术人员应能理解上述单元初始化的方式仅为举例,其他现有的或今后可能出现的单元初始化的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S26中,网页加载设备2将所述初始化结果提供给该用户设备。具体地,在步骤S26中,网页加载设备2将在步骤S25中所提供的初始化结果,通过页面技术,如JSP、ASP或PHP,按一定顺序和格式提供给该用户设备,供用户进行浏览。优选地,在步骤S26中,网页加载设备2还结合其他计算机提供人可读信息的技术手段,如扬声器播放等,将所述初始化结果提供给该用户设备。本领域技术人员应能理解上述将初始化结果提供给用户设备的方式仅为举例,其他现有的或今后可能出现的将初始化结果提供给用户设备的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,上述各个步骤S21-S26之间是持续不断工作的。具体地,在步骤S21中,网页加载设备2接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字;在步骤S22中,网页加载设备2根据所述网页文件,生成与所述网页文件相对应的文档对象模型;在步骤S23中,网页加载设备2根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元;在步骤S24中,网页加载设备2根据所述单元的关键字,加载与所述单元相对应的前端组件;在步骤S25中,网页加载设备2根据所述前端组件,初始化所述单元,以获取初始化结果;在步骤S26中,网页加载设备2将所述初始化结果提供给该用户设备。在此,本领域技术人员应理解“持续”是指各步骤分别按照设定的或实时调整的工作模式要求进行网页文件接收、文档对象模型生成、单元获取、前端组件加载、单元初始化和初始化结果提供,直至该网页加载设备2停止加载网页。
优选地,在步骤S24中,网页加载设备2还可以根据所述单元的关键字,异步加载与所述单元相对应的前端组件。具体地,在步骤S24中,网页加载设备2自在步骤S23中接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合在步骤S21中所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并异步加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,异步加载该前端组件。在此,前端组件的异步加载包括一个或多个前端组件的同时并行下载;相对于同步加载,异步加载可以提高下载速度,改善用户使用体验。例如,假设两个单元的关键字分别为“dialog”和“base”,该基础文件中有注册信息如下:
mini.moduler.addModule({name:"dialog","type":"js","require":"js/dialog.js",depend:"dialogBase"});
mini.moduler.addModule({name:"base",type:"js",require:"js/jquery.js"});
在步骤S24中,网页加载设备2据此进行匹配查询,确定与这两个单元相对应的前端组件分别为“dialog.js”和“jquery.js”,并根据这两前端组件的路径信息分别从指定路径同时加载该两个前端组件,例如并行下载这两个前端组件。本领域技术人员应能理解上述异步加载与单元相对应的前端组件的方式仅为举例,其他现有的或今后可能出现的异步加载与单元相对应的前端组件的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,在步骤S24中,网页加载设备2还可以根据所述单元的关键字,加载与所述单元相对应的前端组件;根据所述前端组件,依次检查所述前端组件的祖先前端组件序列的加载状态;其中,在步骤S25中,网页加载设备2还用于若所述祖先前端组件均已加载,则依次初始化所述祖先前端组件与所述前端组件所对应的单元,以获取初始化结果。具体地,在步骤S24中,网页加载设备2根据在步骤S23中接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合在步骤S21中所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并异步加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,异步加载该前端组件;然后,利用该前端组件的注册信息中的依赖信息,查询该前端组件的父亲前端组件及其加载状态,然后再对该父亲前端组件采用类似的方法,查询该父亲前端组件的父亲前端组件(即该前端组件的祖父前端组件)及其加载状态,直至确定该前端组件的所有祖先前端组件的加载状态。随后,按照最高级祖先前端组件至该前端组件的降序,依次初始化各前端组件所对应的单元,以获取初始化结果。本领域技术人员应能理解上述检查祖先前端组件序列的加载状态的方式仅为举例,其他现有的或今后可能出现的检查祖先前端组件序列的加载状态的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,所述前端组件包括但不限于以下至少任一项:a)JavaScript文件;b)CSS文件;c)图片;d)文字;e)视频;f)音频;g)动画。具体地,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的前端组件的注册信息,查询匹配与该单元相对应的前端组件,并加载该前端组件,例如通过该前端组件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该前端组件,所述前端组件包括但不限于以下任一项:a)JavaScript文件;b)CSS文件;c)图片;d)文字;e)视频;f)音频;g)动画。以CSS文件为例,加载装置24自获取装置23接收与所述文档对象模型中节点相对应的所述网页文件中的单元,根据该单元中的关键字,并结合接收装置21所提供的网页文件中的基础文件中的CSS文件的注册信息,查询匹配与该单元相对应的CSS文件,并加载该CSS文件,例如通过该CSS文件提供方提供的应用程序接口(API)或其他约定的通信方式,加载该CSS文件,以控制网页的外观。此处,CSS(Cascading Style Sheet,层叠样式表)是一组格式设置规则,用于控制Web页面的外观,通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在HTML文档中,而用于定义表现形式的CSS规则则存放在另一个文件中或HTML文档的某一部分,通常为文件头部分。本领域技术人员应能理解,所述前端组件仅为举例,其他现有的或今后可能出现的前端组件如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (22)
1.一种用于生成根据关键字加载前端组件的网页文件的方法,该方法包括以下步骤:
A 创建一个网页文件,其中包括一个基础文件;
B 在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;
C 根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。
2.根据权利要求1所述的方法,其中,所述步骤C还包括:
- 根据所述前端组件的注册信息,进行编码处理,以获取编码结果;
- 根据所述编码结果,在所述网页文件的单元中添加与所述前端组件相对应的关键字。
3.根据权利要求1或2所述的方法,其中,所述前端组件的注册信息包括以下至少任一种:
- 所述前端组件的名称;
- 所述前端组件的类型;
- 所述前端组件的存放路径;
- 所述前端组件间依赖关系。
4.根据权利要求1至3中任一项所述的方法,其中,所述网页文件基于以下任一种文件格式:
- HTML;
- XHTML;
- XML。
5.根据权利要求1至4中任一项所述的方法,其中,所述基础文件基于JavaScript、ASP、PHP、Python或VBScript等任一种脚本语言。
6.一种在用户设备端用于加载网页文件的方法,该方法包括以下步骤:
a 接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字;
b 根据所述网页文件,生成与所述网页文件相对应的文档对象模型;
c 根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元;
d 根据所述单元的关键字,加载与所述单元相对应的前端组件;
e 根据所述前端组件,初始化所述单元,以获取初始化结果;
f 将所述初始化结果提供给该用户设备。
7.根据权利要求6所述的方法,其中,所述步骤d还包括:
- 根据所述单元的关键字,异步加载与所述单元相对应的前端组件。
8.根据权利要求7所述的方法,其中,所述步骤d还包括:
- 根据所述单元的关键字,加载与所述单元相对应的前端组件;
- 根据所述前端组件,依次检查所述前端组件的祖先前端组件序列的加载状态;
其中,所述步骤e还包括:
- 若所述祖先前端组件均已加载,则依次初始化所述祖先前端组件与所述前端组件所对应的单元,以获取初始化结果。
9.根据权利要求6至8中任一项所述的方法,其中,所述步骤d还包括:
- 根据所述单元的关键字,进行解码处理,以获得解码结果;
- 根据所述解码结果,加载与所述单元相对应的前端组件。
10.根据权利要求6至9中任一项所述的方法,其中,所述前端组件包括以下至少任一项:
- JavaScript文件;
- CSS文件;
- 图片;
- 文字;
- 视频;
- 音频;
- 动画。
11.一种用于生成根据关键字加载前端组件的网页文件的设备,该设备包括:
创建装置,用于创建一个网页文件,其中包括一个基础文件;
注册装置,用于在所述基础文件中,注册一个或多个前端组件,以获得一个或多个前端组件的注册信息;
添加装置,用于根据所述前端组件的注册信息,在所述网页文件的单元中添加与所述前端组件的注册信息相对应的关键字。
12.根据权利要求11所述的设备,其中,所述添加装置还用于:
- 根据所述前端组件的注册信息,进行编码处理,以获取编码结果;
- 根据所述编码结果,在所述网页文件的单元中添加与所述前端组件相对应的关键字。
13.根据权利要求11或12所述的设备,其中,所述前端组件的注册信息包括以下至少任一种:
- 所述前端组件的名称;
- 所述前端组件的类型;
- 所述前端组件的存放路径;
- 所述前端组件间依赖关系。
14.根据权利要求11至13中任一项所述的设备,其中,所述网页文件基于以下任一种文件格式:
- HTML;
- XHTML;
- XML。
15.根据权利要求11至14中任一项所述的设备,其中,所述基础文件基于JavaScript、ASP、PHP、Python或VBScript等任一种脚本语言。
16.一种用于加载网页文件的设备,该设备包括:
接收装置,用于接收自网络设备发送的网页文件,其中,所述网页文件包括一个基础文件,所述基础文件包括一个或多个前端组件的注册信息,所述网页文件的单元包括所述前端组件的注册信息相对应的关键字;
生成装置,用于根据所述网页文件,生成与所述网页文件相对应的文档对象模型;
获取装置,用于根据所述文档对象模型,获取与所述文档对象模型中节点相对应的所述网页文件中的单元;
加载装置,用于根据所述单元的关键字,加载与所述单元相对应的前端组件;
初始化装置,用于根据所述前端组件,初始化所述单元,以获取初始化结果;
提供装置,用于将所述初始化结果提供给该用户设备。
17.根据权利要求16所述的设备,其中,所述加载装置还用于:
- 根据所述单元的关键字,异步加载与所述单元相对应的前端组件。
18.根据权利要求17所述的设备,其中,所述加载装置还用于:
- 根据所述单元的关键字,加载与所述单元相对应的前端组件;
- 根据所述前端组件,依次检查所述前端组件的祖先前端组件序列的加载状态;
其中,所述初始化装置还用于:
- 若所述祖先前端组件均已加载,则依次初始化所述祖先前端组件与所述前端组件所对应的单元,以获取初始化结果。
19.根据权利要求16至18中任一项所述的设备,其中,所述加载装置还用于:
- 根据所述单元的关键字,进行解码处理,以获得解码结果;
- 根据所述解码结果,加载与所述单元相对应的前端组件。
20.根据权利要求16至19中任一项所述的设备,其中,所述前端组件包括以下至少任一项:
- JavaScript文件;
- CSS文件;
- 图片;
- 文字;
- 视频;
- 音频;
- 动画。
21.一种浏览器,包括如权利要求16至20中任一项所述用于加载网页文件的装置。
22.一种浏览器插件,包括如权利要求16至20中任一项所述加载网页文件的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010298643.0A CN101963987B (zh) | 2010-09-30 | 一种用于生成网页文件和加载网页文件的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010298643.0A CN101963987B (zh) | 2010-09-30 | 一种用于生成网页文件和加载网页文件的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101963987A true CN101963987A (zh) | 2011-02-02 |
CN101963987B CN101963987B (zh) | 2016-12-14 |
Family
ID=
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268244A (zh) * | 2013-06-06 | 2013-08-28 | 北京奇虎科技有限公司 | 加载文件的方法及装置 |
CN103365847A (zh) * | 2012-03-27 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 一种自定义网页文件的生成方法和装置 |
CN103530152A (zh) * | 2013-10-10 | 2014-01-22 | 小米科技有限责任公司 | 一种加载客户端脚本的方法、装置及终端设备 |
CN103530289A (zh) * | 2012-07-02 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 网页显示方法和装置 |
CN104361120A (zh) * | 2014-12-02 | 2015-02-18 | 国家电网公司 | 一种页面联动方法及系统 |
CN104462247A (zh) * | 2014-11-19 | 2015-03-25 | 北京奇虎科技有限公司 | 网页加载方法和装置 |
CN104462249A (zh) * | 2014-11-19 | 2015-03-25 | 北京奇虎科技有限公司 | 网页加载方法和装置 |
CN104484383A (zh) * | 2014-12-10 | 2015-04-01 | 北京国双科技有限公司 | Js文件处理方法和装置 |
CN104750679A (zh) * | 2013-12-25 | 2015-07-01 | 明博教育科技有限公司 | 一种网页文档编辑器中的资源加载方法 |
CN104834636A (zh) * | 2014-02-08 | 2015-08-12 | 携程计算机技术(上海)有限公司 | 网页的加载方法及装置 |
CN104881305A (zh) * | 2015-05-13 | 2015-09-02 | 福建天晴数码有限公司 | 加载Fragment的方法及终端 |
CN104915186A (zh) * | 2014-03-12 | 2015-09-16 | 腾讯科技(深圳)有限公司 | 一种制作页面的方法和装置 |
CN104951445A (zh) * | 2014-03-25 | 2015-09-30 | 小米科技有限责任公司 | 一种网页处理方法及装置 |
CN105243088A (zh) * | 2015-09-09 | 2016-01-13 | 深圳Tcl数字技术有限公司 | Android系统中获取网页内容的方法及装置 |
CN105786522A (zh) * | 2016-03-17 | 2016-07-20 | 无锡威泰迅电力科技有限公司 | 基于Node.js平台的WEB前端通用组件 |
CN106126650A (zh) * | 2016-06-24 | 2016-11-16 | 武汉斗鱼网络科技有限公司 | 一种基于php扩展的网页图片支持系统 |
CN106155656A (zh) * | 2015-04-07 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 互联网页面组件调用的方法和装置 |
CN106202100A (zh) * | 2015-05-05 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 页面的加载方法及装置 |
CN106339226A (zh) * | 2016-08-26 | 2017-01-18 | 南威软件股份有限公司 | 一种网页页面的展示方法和页面展示插件 |
CN106528175A (zh) * | 2016-11-29 | 2017-03-22 | 福州大学 | 面向bs架构的数据接口生成方法 |
CN106657028A (zh) * | 2016-12-02 | 2017-05-10 | 杭州字节信息技术有限公司 | 一种安卓手机数据加密导出技术的实现方法 |
WO2017124952A1 (zh) * | 2016-01-21 | 2017-07-27 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
CN107329893A (zh) * | 2017-06-21 | 2017-11-07 | 广州酷狗计算机科技有限公司 | 应用界面的遍历方法、装置及存储介质 |
CN107391528A (zh) * | 2016-03-30 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 前端组件依赖信息搜索方法及设备 |
CN107861964A (zh) * | 2017-03-23 | 2018-03-30 | 平安科技(深圳)有限公司 | 影像加载方法及装置 |
CN108647029A (zh) * | 2018-05-10 | 2018-10-12 | 重庆迅燕科技有限公司 | 一种Web前后端代码融合办法 |
CN109343908A (zh) * | 2018-10-19 | 2019-02-15 | 网宿科技股份有限公司 | 一种延迟加载js脚本的方法和装置 |
CN110865852A (zh) * | 2019-11-19 | 2020-03-06 | 北京字节跳动网络技术有限公司 | 网页组件的加载方法、装置、电子设备、及存储介质 |
CN111159615A (zh) * | 2019-12-31 | 2020-05-15 | 北大方正集团有限公司 | 网页处理方法和装置 |
CN112925573A (zh) * | 2019-11-20 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 网页加载的方法、装置、设备和计算机可读介质 |
CN114282495A (zh) * | 2020-09-28 | 2022-04-05 | 京东科技信息技术有限公司 | 一种文本标注方法和装置 |
CN114840203A (zh) * | 2022-07-04 | 2022-08-02 | 金现代信息产业股份有限公司 | 页面元素的动态创建方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1369827A (zh) * | 2001-02-14 | 2002-09-18 | 英业达股份有限公司 | 在网页上报告的生成方法 |
US6560639B1 (en) * | 1998-02-13 | 2003-05-06 | 3565 Acquisition Corporation | System for web content management based on server-side application |
CN101158896A (zh) * | 2007-08-31 | 2008-04-09 | 南京联创科技股份有限公司 | 基于mvc的业务组装和页面模板化开发web平台的方法 |
CN101504590A (zh) * | 2009-03-13 | 2009-08-12 | 无锡迈思奇科技有限公司 | 交互界面的配置方法 |
CN101848231A (zh) * | 2010-03-08 | 2010-09-29 | 深圳市同洲电子股份有限公司 | 一种数据传输的方法和系统 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560639B1 (en) * | 1998-02-13 | 2003-05-06 | 3565 Acquisition Corporation | System for web content management based on server-side application |
CN1369827A (zh) * | 2001-02-14 | 2002-09-18 | 英业达股份有限公司 | 在网页上报告的生成方法 |
CN101158896A (zh) * | 2007-08-31 | 2008-04-09 | 南京联创科技股份有限公司 | 基于mvc的业务组装和页面模板化开发web平台的方法 |
CN101504590A (zh) * | 2009-03-13 | 2009-08-12 | 无锡迈思奇科技有限公司 | 交互界面的配置方法 |
CN101848231A (zh) * | 2010-03-08 | 2010-09-29 | 深圳市同洲电子股份有限公司 | 一种数据传输的方法和系统 |
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365847A (zh) * | 2012-03-27 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 一种自定义网页文件的生成方法和装置 |
CN103365847B (zh) * | 2012-03-27 | 2016-02-24 | 腾讯科技(深圳)有限公司 | 一种自定义网页文件的生成方法和装置 |
CN103530289A (zh) * | 2012-07-02 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 网页显示方法和装置 |
CN103530289B (zh) * | 2012-07-02 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 网页显示方法和装置 |
CN103268244A (zh) * | 2013-06-06 | 2013-08-28 | 北京奇虎科技有限公司 | 加载文件的方法及装置 |
CN103530152A (zh) * | 2013-10-10 | 2014-01-22 | 小米科技有限责任公司 | 一种加载客户端脚本的方法、装置及终端设备 |
CN104750679B (zh) * | 2013-12-25 | 2020-01-24 | 明博教育科技有限公司 | 一种网页文档编辑器中的资源加载方法 |
CN104750679A (zh) * | 2013-12-25 | 2015-07-01 | 明博教育科技有限公司 | 一种网页文档编辑器中的资源加载方法 |
CN104834636B (zh) * | 2014-02-08 | 2019-09-24 | 上海携程商务有限公司 | 网页的加载方法及装置 |
CN104834636A (zh) * | 2014-02-08 | 2015-08-12 | 携程计算机技术(上海)有限公司 | 网页的加载方法及装置 |
CN104915186B (zh) * | 2014-03-12 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种制作页面的方法和装置 |
CN104915186A (zh) * | 2014-03-12 | 2015-09-16 | 腾讯科技(深圳)有限公司 | 一种制作页面的方法和装置 |
CN104951445A (zh) * | 2014-03-25 | 2015-09-30 | 小米科技有限责任公司 | 一种网页处理方法及装置 |
CN104951445B (zh) * | 2014-03-25 | 2020-06-02 | 小米科技有限责任公司 | 一种网页处理方法及装置 |
CN104462247A (zh) * | 2014-11-19 | 2015-03-25 | 北京奇虎科技有限公司 | 网页加载方法和装置 |
CN104462249A (zh) * | 2014-11-19 | 2015-03-25 | 北京奇虎科技有限公司 | 网页加载方法和装置 |
CN104462249B (zh) * | 2014-11-19 | 2019-02-12 | 北京奇虎科技有限公司 | 网页加载方法和装置 |
CN104361120B (zh) * | 2014-12-02 | 2018-06-12 | 国家电网公司 | 一种页面联动方法及系统 |
CN104361120A (zh) * | 2014-12-02 | 2015-02-18 | 国家电网公司 | 一种页面联动方法及系统 |
CN104484383A (zh) * | 2014-12-10 | 2015-04-01 | 北京国双科技有限公司 | Js文件处理方法和装置 |
CN104484383B (zh) * | 2014-12-10 | 2017-11-14 | 北京国双科技有限公司 | Js文件处理方法和装置 |
CN106155656B (zh) * | 2015-04-07 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 互联网页面组件调用的方法和装置 |
CN106155656A (zh) * | 2015-04-07 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 互联网页面组件调用的方法和装置 |
CN106202100A (zh) * | 2015-05-05 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 页面的加载方法及装置 |
CN104881305A (zh) * | 2015-05-13 | 2015-09-02 | 福建天晴数码有限公司 | 加载Fragment的方法及终端 |
CN104881305B (zh) * | 2015-05-13 | 2018-03-06 | 福建天晴数码有限公司 | 加载Fragment的方法及终端 |
CN105243088A (zh) * | 2015-09-09 | 2016-01-13 | 深圳Tcl数字技术有限公司 | Android系统中获取网页内容的方法及装置 |
WO2017041544A1 (zh) * | 2015-09-09 | 2017-03-16 | 深圳Tcl数字技术有限公司 | Android系统中获取网页内容的方法及装置 |
WO2017124952A1 (zh) * | 2016-01-21 | 2017-07-27 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
CN106990976A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
CN105786522A (zh) * | 2016-03-17 | 2016-07-20 | 无锡威泰迅电力科技有限公司 | 基于Node.js平台的WEB前端通用组件 |
CN107391528B (zh) * | 2016-03-30 | 2021-04-20 | 阿里巴巴集团控股有限公司 | 前端组件依赖信息搜索方法及设备 |
CN107391528A (zh) * | 2016-03-30 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 前端组件依赖信息搜索方法及设备 |
CN106126650A (zh) * | 2016-06-24 | 2016-11-16 | 武汉斗鱼网络科技有限公司 | 一种基于php扩展的网页图片支持系统 |
CN106339226A (zh) * | 2016-08-26 | 2017-01-18 | 南威软件股份有限公司 | 一种网页页面的展示方法和页面展示插件 |
CN106339226B (zh) * | 2016-08-26 | 2019-10-25 | 南威软件股份有限公司 | 一种网页页面的展示方法和页面展示装置 |
CN106528175A (zh) * | 2016-11-29 | 2017-03-22 | 福州大学 | 面向bs架构的数据接口生成方法 |
CN106528175B (zh) * | 2016-11-29 | 2019-09-13 | 福州大学 | 面向bs架构的数据接口生成方法 |
CN106657028A (zh) * | 2016-12-02 | 2017-05-10 | 杭州字节信息技术有限公司 | 一种安卓手机数据加密导出技术的实现方法 |
CN107861964A (zh) * | 2017-03-23 | 2018-03-30 | 平安科技(深圳)有限公司 | 影像加载方法及装置 |
CN107329893A (zh) * | 2017-06-21 | 2017-11-07 | 广州酷狗计算机科技有限公司 | 应用界面的遍历方法、装置及存储介质 |
CN108647029B (zh) * | 2018-05-10 | 2019-05-14 | 重庆迅燕科技有限公司 | 一种Web前后端代码融合办法 |
CN108647029A (zh) * | 2018-05-10 | 2018-10-12 | 重庆迅燕科技有限公司 | 一种Web前后端代码融合办法 |
CN109343908A (zh) * | 2018-10-19 | 2019-02-15 | 网宿科技股份有限公司 | 一种延迟加载js脚本的方法和装置 |
CN110865852A (zh) * | 2019-11-19 | 2020-03-06 | 北京字节跳动网络技术有限公司 | 网页组件的加载方法、装置、电子设备、及存储介质 |
CN112925573B (zh) * | 2019-11-20 | 2023-09-26 | 北京沃东天骏信息技术有限公司 | 网页加载的方法、装置、设备和计算机可读介质 |
CN112925573A (zh) * | 2019-11-20 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 网页加载的方法、装置、设备和计算机可读介质 |
CN111159615A (zh) * | 2019-12-31 | 2020-05-15 | 北大方正集团有限公司 | 网页处理方法和装置 |
CN111159615B (zh) * | 2019-12-31 | 2024-01-02 | 新方正控股发展有限责任公司 | 网页处理方法和装置 |
CN114282495A (zh) * | 2020-09-28 | 2022-04-05 | 京东科技信息技术有限公司 | 一种文本标注方法和装置 |
CN114840203A (zh) * | 2022-07-04 | 2022-08-02 | 金现代信息产业股份有限公司 | 页面元素的动态创建方法及系统 |
CN114840203B (zh) * | 2022-07-04 | 2022-09-16 | 金现代信息产业股份有限公司 | 页面元素的动态创建方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789484B (zh) | 一种网页信息处理方法和装置 | |
KR101908162B1 (ko) | 통합 개발 환경에서의 라이브 브라우저 툴 제공 기법 | |
CN101866342B (zh) | 生成或显示网页标注的方法和装置以及信息共享系统 | |
US8533693B2 (en) | Embedding expressions in XML literals | |
TWI592807B (zh) | Method and device for web style address merge | |
Danielsen et al. | Validation and interactivity of web API documentation | |
CN112463152A (zh) | 一种基于ast的网页适配方法及装置 | |
US9122484B2 (en) | Method and apparatus for mashing up web applications | |
Bellucci et al. | Automatic reverse engineering of interactive dynamic web applications to support adaptation across platforms | |
JP5789323B2 (ja) | 同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体 | |
CN104050190B (zh) | 一种关系链数据处理的方法和系统、客户端 | |
CN102508887A (zh) | 一种数字电视交互服务标记语言解析系统及方法 | |
US20130191492A1 (en) | Server-Side Minimal Download and Error Failover | |
Kienle et al. | Evolution of web systems | |
CN108664511B (zh) | 获取网页信息方法和装置 | |
CN101963987B (zh) | 一种用于生成网页文件和加载网页文件的方法与设备 | |
CN101963987A (zh) | 一种用于生成网页文件和加载网页文件的方法与设备 | |
JP2012145969A (ja) | ウェブサーバシステム及びプログラム | |
Firmenich et al. | Engineering concern-sensitive navigation structures. Concepts, tools and examples | |
Honkala | Web user interaction: a declarative approach based on XForms | |
CN105183886A (zh) | 网页内容提取方法及装置 | |
Christos et al. | Web page fragmentation for personalized portal construction | |
Joshi | HTML5 programming for ASP. NET developers | |
Ling | Based on web application front-end performance optimization | |
Krug et al. | SmartComposition: enhanced web components for a better future of web development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |