CN109948085A - 浏览器内核初始化方法、装置、计算设备和存储介质 - Google Patents
浏览器内核初始化方法、装置、计算设备和存储介质 Download PDFInfo
- Publication number
- CN109948085A CN109948085A CN201711182930.3A CN201711182930A CN109948085A CN 109948085 A CN109948085 A CN 109948085A CN 201711182930 A CN201711182930 A CN 201711182930A CN 109948085 A CN109948085 A CN 109948085A
- Authority
- CN
- China
- Prior art keywords
- browser
- page
- user
- objective browser
- specific webpage
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 14
- 235000008429 bread Nutrition 0.000 claims 2
- 230000006870 function Effects 0.000 description 12
- 238000009877 rendering Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 239000011651 chromium Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000010903 husk Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种浏览器内核初始化方法、装置、计算设备和存储介质。该方法包括:响应于启动目标浏览器的命令,启动目标浏览器;响应于目标浏览器启动完成,加载特定页面,其中特定页面被设置为对目标用户不可见;目标浏览器的内核接收页面加载的响应数据,以完成初始化。由此,通过在浏览器启动之后用户实际点击页面之前,以加载不可见页面的方式完成浏览器内核的初始化,就能够在不影响浏览器启动速度的情况下大幅提升用户的第一次页面访问体验,由此提升用户友好度。
Description
技术领域
本发明涉及浏览器技术领域,特别涉及一种浏览器内核初始化方法、装置、计算设备和存储介质。
背景技术
浏览器的使用流畅度是衡量浏览器是否优秀的一个重要指标。为了不影响用户的浏览体验,一般在浏览器启动时,并不会直接进行浏览器内核的初始化。通常,会在用户第一次访问页面时,创建视图(例如,Android系统下的WebView视图)来初始化浏览器内核的各个模块。这些模块的初始化相当耗时,会减缓用户浏览器开启后第一次访问页面的显示速度,使得用户体验不佳。根据统计数据,第一次创建WebView耗时超过300ms,第一次初始化内核渲染器进程、字体库模块、合成器模块、存储模块、网络模块、V8JavaScript引擎等等的耗时也超过300ms。
由此,仍然需要一种能够减轻浏览器内核初始化对用户浏览流畅度的影响的解决方案。
发明内容
为了解决如上的至少一个问题,本发明公开了一种通过在浏览器启动完成之后预先创建隐藏视图并加载特定页面来实现浏览器内核初始化的方案。由于该初始化过程是在浏览器启动之后,用户第一次访问页面之前以用户不可见的方式进行的,因此能够最小化浏览器内核初始化对用户浏览流畅性的影响。
根据本发明的一个方面,提出了一种浏览器内核初始化方法,包括:响应于启动目标浏览器的命令,启动目标浏览器;响应于目标浏览器启动完成,加载特定页面,其中所述特定页面被设置为对目标用户不可见;所述目标浏览器的内核接收页面加载的响应数据,以完成初始化。由此,通过在浏览器启动之后用户实际点击页面之前,以加载不可见页面的方式完成浏览器内核的初始化,就能够在不影响浏览器启动速度的情况下大幅提升用户的第一次页面访问体验,由此提升用户友好度。
特定页面可以在目标浏览器启动后的特定时间点加载。上述时间点可以根据目标用户、大用户甚至是浏览器主页的情况而进行确定和更新。通过对时间点的恰当选取,能够进一步减小浏览器内核初始化对在前的浏览器启动和在后的用户页面访问的影响,从而进一步提升浏览流畅度。
响应于目标浏览器启动完成,加载特定页面可以包括:响应于目标浏览器启动完成,创建目标视图;以及在所述目标视图上加载所述特定页面,其中,所述目标视图被构造为对用户不可见。由此,可以经由目标视图的创建并对页面的加载来实现对特定页面的加载。通过将目标视图构造为不可见(例如,不将所述目标视图加入ViewTree)能够以更为简便的方式实现其要加载页面的不可见。
优选地,浏览器内核用来进行初始化的页面并不一定需要是最初加载的页面。因此,本发明的上述方法还可以包括:拦截要加载的所述特定页面;返回本地页面,并且,其中所述目标浏览器内核接收所述本地页面的响应数据以完成初始化。由此,通过最终加载本地页面来避免不必要的流量消耗。上述拦截可由所述目标浏览器的外壳实现,并且所述拦截包括返回所述本地页面和继续请求所述特定页面的后续操作选项。由此,可以根据应用场景对返回页面进行灵活设置和选取。
浏览器内核最终用来进行初始化的页面可以是目标浏览器的用户频繁访问页面;并且上述方法还可以包括:更新所述用户频繁访问页面的资源缓存。由此,通过预测并提前加载用户会访问的页面或是业务(虽然是以用户不可见的方式),能够在用户真实访问该页面或业务时大幅提升对用户操作的响应速度,从而提升用户使用体验。
根据本发明的另一个方面,还提出了一种浏览器内核初始化装置,包括:启动单元,用于响应于启动目标浏览器的命令,启动目标浏览器;页面加载单元,用于响应于目标浏览器启动完成,加载特定页面,其中所述特定页面被设置为对目标用户不可见;初始化单元,基于所述目标浏览器的内核接收页面加载的响应数据,以完成初始化。
优选地,页面加载单元可以在目标浏览器启动后的特定时间点加载所述特定页面。所述浏览器内核可以接收响应数据的页面以及所述特定时间点,根据目标用户的用户数据和/或是所述目标浏览器的大用户数据来确定和/或更新。
优选地,所述页面加载单元还可以包括:视图创建单元,用于响应于目标浏览器启动完成,创建目标视图;以及加载子单元,用于在所述目标视图上加载所述特定页面,其中,所述目标视图被构造为对用户不可见。优选地,可以不将所述目标视图加入ViewTree以使得所述目标视图对用户不可见。
优选地,该初始化装置还可以包括:拦截单元,用于拦截要加载的所述特定页面;返回单元,用于返回本地页面,并且,其中所述初始化单元基于所述目标浏览器内核接收所述本地页面的响应数据以完成初始化。其中,拦截要加载的所述特定页面由所述目标浏览器的外壳实现,并且所述拦截包括返回所述本地页面和继续请求所述特定页面的后续操作选项。
优选地,所述特定页面可以是所述目标浏览器的用户频繁访问页面;并且所述初始化装置还可以包括:更新单元,用于更新所述用户频繁访问页面的资源缓存。
根据本发明的另一方面,还提出了一种计算设备,包括处理器以及存储器。存储器上可以存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述的方法。
根据本发明的另一方面,还提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行上述的方法。
由此,通过在浏览器启动完成之后预先创建隐藏视图并加载特定页面来实现浏览器内核初始化的方案,以最小化浏览器内核初始化对用户浏览流畅性的影响,能够在不影响浏览器启动速度的情况下大幅提升用户的第一次页面访问体验,由此提升用户友好度。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1A和1B分别示出了浏览器启动页面和用户访问页面的例子。
图2是根据本发明实施方式提供的具有webkit内核的处理模块的结构。
图3示出了根据本发明一个实施例的浏览器内核初始化方法的流程图。
图4是示出了根据本发明一实施例的浏览器内核初始化装置的结构框图。
图5示出了根据本发明一个实施例的计算设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
随着互联网技术的发展和移动终端的普及,人们越来越习惯于从网络上获取各类信息。在这其中,浏览器应用,尤其是安装在移动终端上的各类浏览器APP或是带有浏览器功能的APP,成为了人们获取资讯的常用工具。现在的浏览器已不再满足于被动返回用户请求的内容,而是转变为带有浏览器功能的、主动为用户提供各类信息的内容聚合应用。除了内容上的竞争,浏览器的使用流畅性和用户友好度也成为某类浏览器能够从激烈竞争中脱颖而出的重要指标。
用户对浏览器的使用从启动开始,因此浏览器的启动速度会直接影响用户的使用体验。为了提升启动速度,大部分浏览器在启动时,并不会直接进行浏览器内核的初始化。通常,会在用户第一次访问页面时,通过创建视图(例如,Android系统下的WebView视图)来初始化浏览器内核的各个模块。这些模块的初始化相当耗时,会减缓用户浏览器开启后第一次访问页面的显示速度,使得用户体验不佳。根据统计数据,第一次创建WebView耗时超过300ms,第一次初始化内核渲染器进程、字体库模块、合成器模块、存储模块、网络模块、V8JavaScript引擎等等的耗时也超过300ms。
图1A和1B分别示出了浏览器启动页面和用户访问页面的例子。浏览器在启动完成后一般会进入如图1A所示的浏览器主页。该浏览器主页虽然也包括推送的新闻内容,但例如在安卓系统下其是通过系统视图而非WebView(网络视图)展现的页面,而系统视图的展示不需要初始化浏览器内核。随后,如图1B所示,浏览器响应于用户操作进入信息流页面。该页面是需要通过WebView展现的页面,而通过WebView展现需要初始化内核。因此在现有技术中,用户例如通过点击第一次自行访问页面时会经历耗时的浏览器内核初始化过程。上述过程会阻碍被访问页面的流畅显示,降低用户的浏览体验,对于处理能力有限的移动设备尤为如此。
为此,本发明提出了一种通过在浏览器启动完成之后预先创建隐藏视图并加载特定页面来实现浏览器内核初始化的方案。由于该初始化过程是在浏览器启动之后,用户第一次访问页面之前以用户不可见的方式进行的,因此能够最小化浏览器内核初始化对用户浏览流畅性的影响。在描述具体方案之前,为了方便对本发明方案的准确把握,首先对浏览器工作原理进行简要的介绍。
浏览器是一种运行于终端设备上的软件,主要是用于显示网页。浏览器从架构上可以分为两个部分,即内核和外壳。浏览器内核负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页,即浏览器通过内核对网页进行解析和渲染。浏览器外壳主要处理浏览器外观界面、操控体验等。
浏览器内核是浏览器核心部分。通常,浏览器内核也被称为渲染引擎。渲染引擎用于将HTML/CSS/JavaScript文本及其相应的资源文件转换成图像结果进行显示。
目前市场上流行的浏览器虽然种类繁多,但大多数浏览器开发者仅进行浏览器外壳的开发,使用的内核无外乎IE采用的Trident内核、Chrome采用的Webkit内核以及Firefox采用的Gecko内核三种。由于目前大多数浏览器的内核均采用Webkit作为内核,下面对具有Webkit内核的处理模块进行详细介绍。
图2是根据本发明实施方式提供的具有webkit内核的处理模块的结构。该处理模块100可以是在各类计算设备上使用的模块,包括但不限于诸如智能电话、平板电脑、便携式计算机的各类移动设备,以及诸如台式计算机的非便携式设备。本领域技术人员应该理解,虽然未在图中示出,但包括处理模块的计算设备还可以具有存储单元、输入输出设备、联网装置以及其他在此未提及的装置以实现各种类型的功能。
处理模块100可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理模块100可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器100可以使用定制的电路实现,例如特定用途集成电路(application specific integrated circuit,ASIC)或者现场可编程逻辑门阵列(field programmable gate arrays,FPGA)。在一些实施方式中,处理模块100可以是类似的电路执行存储在自身上的可执行指令。在另外一些实施方式中,处理模块100可以执行存储在存储子系统200上的可执行指令。在图2示出的实施方式中,处理模块100设有操作系统110和运行在操作系统110上的浏览器120。浏览器120包括Webkit内核123、嵌入式接口122和一些通过所述嵌入式接口122与Webkit内核123交互的浏览器插件121。WebKit内核123(即渲染引擎)又可以包括排版引擎(Webcore)1231、JS引擎1232和WebKit Ports移植部分1233。
在图2示出的结构中,排版引擎1231又包括三个模块:解析模块,排版模块和渲染模块。其中,解析模块又可以包含HTML解析器和CSS解析器。HTML解析器包括标记生成器和树构造器。标记生成器用于将输入的网页内容(通常是XML文档格式)解析成多个HTML标记。HTML标记包括起始标记、结束标记、属性名称和属性值。标记生成器用于识别这些标记,并传递给树构造器,然后接收下一个字符以识别下一个标记;如此反复直到输入的结束。
JS引擎1232用于解析Javascript语言,通过执行Javascript语言来实现网页的动态效果。JS引擎可以是JavaScripCore引擎或V8引擎,JavaScripCore引擎是webkit中的默认JS引擎。在Google的Chromium开源项目中,JavaScripCore引擎被替换为V8引擎,V8引擎是由美国Google开发的开源JavaScript引擎。
WebKit Ports移植部分1233包括网络栈、硬件加速、视频、文字、图片解码、加载模块(网络栈)和其他功能模块。webkit的资源加载由各个移植来实现,所以每个移植的网络实现方式可能会不一样。
通过适当的编程,处理模块100为计算设备可以实现多种类型的功能。例如,处理模块100通过联网装置从服务器下载网页内容至存储单元。然后,处理模块100从存储单元中读取网页文件至排版引擎1231。排版引擎1231的解析模块对网页进行解析后构建成一颗DOM树。当DOM树建立的时候,排版引擎1231的排版模块接收CSS解析器的样式信息,构建一个新的内部绘图模型(Renderobject Tree,渲染对象树,又叫排版树),并由排版模块计算模型内各个元素的位置和大小,然后由渲染模块完成从模型到图形的绘制。
需要理解的是,上文对功能模块的描述是为了便于理解,而非对功能部件特定的物理配置。而且,这些功能模块不需要与物理模块一一对应。模块可以被配置成用来完成各种操作,例如通过编程或设置合适的控制电路,模块也可能会根据初始设置重新被配置。本发明的实施例可以在各种设备包括电子设备中,通过使用硬件和软件的结合来实现。
在现有技术中,浏览器的启动(以及可选地系统视图的显示)不涉及浏览器内核(例如,图2中的Webkit内核)的初始化。上述初始化过程只有在用户第一次访问页面时才会完成。为了在不影响浏览器启动速度的情况下提升用户第一次访问页面时的流畅度,本发明提出了一种浏览器内核的初始化方法。图3示出了根据本发明一个实施例的浏览器内核初始化方法的流程图。
在步骤S310,响应于启动目标浏览器的命令,启动目标浏览器。启动目标浏览器的命令可以是用户做出的,也可以是根据预先设置而由操作系统做出的。例如,安装在智能电话上的浏览器APP可以响应于用户点击相应图标而启动。而安装在便携式计算机上的浏览器应用例如可以根据设置在每次开机时自动启动。在此不对目标浏览器的启动方式做出规定。
对于浏览器应用,尤其是安装在处理能力相对有限的移动设备上的浏览器APP而言,启动速度是衡量其易用性的一个重要指标。因此在目标浏览器启动时,其通常不会加载需要浏览器内核初始化才能显示的页面,而是会利用系统视图加载例如空白页、搜索页或是浏览器主页,甚至不加载任何页面。在这其中,对于移动APP而言,优选显示如图1A所示的浏览器主页。页面中包括搜索栏、常用网站和热点消息,以进一步方便用户的浏览。
在步骤S320,响应于目标浏览器启动完成,加载特定页面,其中特定页面被设置为对目标用户不可见;以及在步骤S330,目标浏览器的内核接收页面加载的响应数据,以完成初始化。
由此,通过在浏览器启动完成之后加载用户不可见的页面来实现浏览器内核初始化的方案。由于该初始化过程是在浏览器启动之后,且在用户第一次访问页面之前以用户不可见的方式进行的,因此能够最小化浏览器内核初始化对用户浏览流畅性的影响。
上述加载不可见页面并完成内核初始化的步骤需要在浏览器启动后的特定时间点进行。如上所述,本发明的浏览器内核初始化方案的初衷是为了提升浏览器启动之后用户第一次访问页面时的页面显示速度。因此,步骤S320和S330需要在浏览器启动完成之后,并且在用户第一次访问页面之前进行,并优选完成。
在一个实施例中,可以在浏览器启动完成后随即进行上述步骤S320和S330。在另一个实施例中,上述步骤可以在浏览器启动完成后的很短时间进行。例如,上文所述的特定时间点可以浏览器启动后的2秒。这个时间点可以通过服务器下发控制,例如在浏览器安装包或更新时中加入对上述特定时间点的规定。上述时间点可以是对所有用户统一的,也可以是根据具体用户的相关数据确定的。例如,可以根据目标用户的浏览器主页在前停留时间来进行设置。上述时间点还通常与浏览器主页的内容丰富性相关。例如,对于用户无需接收新信息的空白主页可以将特定时间点设置的较短。对于例如图1A之类的内容方法的浏览器主页,则可将特定时间点设置的较长,例如浏览器启动后的2秒。
在一个实施例中,步骤320中的页面加载可以通过创建视图并加载页面来实现。因此,所述响应于目标浏览器启动完成,加载特定页面可以包括:响应于目标浏览器启动完成,创建目标视图;以及在所述目标视图上加载所述特定页面,其中,所述目标视图被构造为对用户不可见。换句话说,可以通过目标视图的不可见来实现其加载页面的不可见。
在Android系统的实施例中,创建的目标视图可以是WebView视图。由此,在浏览器启动后的特定时间点(例如,启动后2秒,并可由服务器下发控制),预先创建一个隐藏的WebView。在一个实施例中,可以通过不将该WebView加入ViewTree来实现其对用户的不可见性。随后,在隐藏WebView中,使用WebView的接口(例如,loadUrl)来加载一个特定页面。浏览器内核随后可以接收该特定页面加载的响应数据,对其进行解析排版渲染,以完成初始化。在这里,服务器下发控制是指UC配置服务器将配置文件下发给所有用户的UC浏览器,UC浏览器会把配置信息保存到本地文件。用户点击启动浏览器时,浏览器会从本地文件中读取服务器下发的配置信息,比如,读取出的配置信息为init_time=2,那么,它就会在浏览器启动进入主界面后,2秒时创建一个隐藏的Webview。
在本发明中,浏览器内核真正解析的页面并不需要与目标视图最初加载的视图相同。浏览器可以拦截要加载的特定页面,并根据情况选择是加载该特定页面还是其他页面,例如,返回本地页面并通过加载本地页面来完成内核初始化,以避免不必要的流量。在这里,本地页面可理解为所有资源文件都已缓存在本地的页面,无需到网络获取任何资源。访问一次本地页面的作用是既可以提前初始化内核流程,又不会消耗用户流量。
在一个实施例中,可以由浏览器外壳来实现上述拦截。例如,浏览器外壳可以在WebViewClient的shouldInterceptRequest接口进行拦截。shouldInterceptRequest在网络层回调外壳,外壳在该接口拦截上述URLA,返回一个本地页面,也可以返回null让其继续发网络请求到页面服务器。是否返回本地页面可由服务器下发控制。在一个实施例中,服务器可以通过如下格式进行内容下发:URL|use_local_page_flag。例如,https://example.com|0。浏览器使用https://example.com作为初始化的URL,0表示shouldInterceptRequest返回本地页面,不继续发网络请求到页面服务器,并且随后浏览器内核通过对该本地页面的响应数据进行解析排版渲染来完成初始化。
由于每个应用程序(比如,目标浏览器、支付宝等)都会有一些非常重要的业务,用户进入之后都会以极高概率首先访问这些业务,比如目标浏览器的信息流页面,支付宝的蚂蚁森林页面。如果在用户真正访问页面之前,在隐藏WebView加载页面时让它直接到页面服务器去获取页面资源,这样就可以提前准备最重要业务的页面资源,比如,将页面的JS,CSS等资源提前下载到本地缓存起来供后续访问使用。
在一个实施例中,浏览器内核可以通过对用户频繁访问页面进行解析排版渲染来完成初始化。用户频繁访问网页可以是目标视图初始加载的特定页面,也可以是特定页面被拦截后返回的其他页面。在一个实施例中,内置浏览器的APP客户端可以下发用户访问最热的URL,让其发起网络请求。由此,除了可以初始化浏览器,还可以初始化页面服务器,更新页面资源缓存,更大的提升用户首次访问的性能效果。浏览器内核最终用于进行初始化的页面可以是根据目标用户的用户数据和/或是所述目标浏览器的大用户数据来确定和/或更新的。例如,如果目标用户通常第一次访问的页面都是浏览器主页上的热点新闻,则可以将浏览器内核使用该浏览器主页上热点新闻的URL进行初始化;如果通常访问的都是信息流页面,则可以初始化该信息流页面。虽然本发明的初始化方案中加载的页面不可见,但由于在目标用户实际点击该新闻前对其的解析排版渲染就已开始,因此能够极快地响应于用户点击显示相应页面,由此提升用户体验。
另一方面,由于用户不一定是100%去访问这些业务。不访问就意味着浪费了用户流量。因此,可以将特定页面、是否拦截以及返回何种页面等做成可配置策略,按实际需要决定是否从服务器获取。例如,可以在连接WiFi或是用户对流量不敏感时选择真正从服务器获取页面信息进行下载,而非加载本地页面。
如上结合图3描述了根据本发明的一种浏览器内核初始化方法,所述方法通过在浏览器启动完成之后预先创建隐藏视图并加载特定页面来实现浏览器内核初始化的方案。由于该初始化过程是在浏览器启动之后,用户第一次访问页面之前以用户不可见的方式进行的,因此能够最小化浏览器内核初始化对用户浏览流畅性的影响。具体地,在目标浏览器启动后的特定时间点,预先创建一个隐藏的WebView,加载一个特定页面,浏览器外壳在shouldInterceptRequest接口拦截,决定是否返回本地页面,从而完成整个浏览器和页面的初始化。而当用户访问真实页面时,此时浏览器以完成了全部的初始化,因此能极大的提升用户首次访问的性能。在本发明的目标浏览器的信息流中统计数据表明,能把用户第一访问信息流页面整体性能提升100ms,有较大的实用价值。
另外,虽然上文的示例中结合了Android系统的WebView视图来对本发明的原理做出阐述。但本领域技术人员应该理解的是,本发明的基本原理在其他系统(例如,iOS系统)下,针对不同的视图也同样适用。
此外,本发明的浏览器内核初始化方案还可以由一种浏览器内核初始化装置实现。图4是示出了根据本发明一实施例的浏览器内核初始化装置(以下简称初始化装置)的结构框图。其中,初始化装置400的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图4所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图4所示的初始化装置400可以用来实现图3所示的初始化方法,下面仅就初始化装置400可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2-3的描述,这里不再赘述。
如图4所示,本发明的初始化装置可以包括启动单元410、页面加载单元420和初始化单元430。其中,启动单元410可以响应于启动目标浏览器的命令,启动目标浏览器。页面加载单元420可以响应于目标浏览器启动完成,加载特定页面,其中所述特定页面可以被设置为对目标用户不可见。初始化单元430可以基于所述目标浏览器的内核接收页面加载的响应数据,以完成初始化。
页面加载单元420可以在目标浏览器启动后的特定时间点加载所述特定页面,这个时间点可以通过服务器下发控制,可以是对所有用户统一的,也可以是根据具体用户的相关数据确定的。初始化单元430可以基于所述浏览器内核接收响应数据的页面以及所述特定时间点,根据目标用户的用户数据和/或是所述目标浏览器的大用户数据来确定和/或更新。
页面加载单元420还可以可选地包括视图创建单元421和加载子单元423。视图创建单元421可以用于响应于目标浏览器启动完成,创建目标视图。加载子单元423可以用于在所述目标视图上加载所述特定页面。其中,所述目标视图被构造为对用户不可见。优选地,可以通过不将所述目标视图加入ViewTree以使得所述目标视图对用户不可见。
另外,在本发明中,浏览器内核真正解析的页面并不需要与目标视图最初加载的视图相同。浏览器可以拦截要加载的特定页面,并根据情况选择是加载该特定页面还是其他页面,因此,该初始化装置还可以可选地包括拦截单元440和返回单元450。拦截单元440可以用于拦截要加载的所述特定页面。返回单元450可以用于返回本地页面。此时,所述初始化单元可以基于所述目标浏览器内核接收所述本地页面的响应数据以完成初始化。
前述的拦截要加载的所述特定页面可以由所述目标浏览器的外壳实现,并且所述拦截可以包括返回所述本地页面和继续请求所述特定页面的后续操作选项。
所述特定页面可以是所述目标浏览器的用户频繁访问页面。所述初始化装置还可以可选地包括更新单元460,用于更新所述用户频繁访问页面的资源缓存。
由此,通过在浏览器启动完成之后预先创建隐藏视图并加载特定页面来实现浏览器内核初始化的方案,以最小化浏览器内核初始化对用户浏览流畅性的影响,能够在不影响浏览器启动速度的情况下大幅提升用户的第一次页面访问体验,由此提升用户友好度。
另外,本发明的初始化方案还可以由一种计算设备实现。图5示出了根据本发明一个实施例的计算设备的示意性框图。
如图5所示,本发明的计算设备可以包括处理器510和存储器520。存储器520上可以存储有可执行代码,当可执行代码被处理器510执行时,使处理器510执行根据本发明的浏览器内核初始化方法。具体实现过程可参见上文中的相关描述,在此不再赘述。
上文中已经参考附图详细描述了根据本发明的浏览器内核初始化方法、装置和计算设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种浏览器内核初始化方法,包括:
响应于启动目标浏览器的命令,启动目标浏览器;
响应于目标浏览器启动完成,加载特定页面,其中所述特定页面被设置为对目标用户不可见;以及
所述目标浏览器的内核接收页面加载的响应数据,以完成初始化。
2.如权利要求1所述的方法,其中,所述响应于目标浏览器启动完成,加载特定页面包括:
在目标浏览器启动后的特定时间点,加载所述特定页面。
3.如权利要求2所述的方法,其中,所述浏览器内核接收响应数据的页面以及所述特定时间点,根据目标用户的用户数据和/或是所述目标浏览器的大用户数据来确定和/或更新。
4.如权利要求1所述的方法,其中,所述响应于目标浏览器启动完成,加载特定页面包括:
响应于目标浏览器启动完成,创建目标视图;以及
在所述目标视图上加载所述特定页面,其中,所述目标视图被构造为对用户不可见。
5.如权利要求4所述的方法,其中,不将所述目标视图加入ViewTree以使得所述目标视图对用户不可见。
6.如权利要求1所述的方法,还包括:
拦截要加载的所述特定页面;
返回本地页面,并且,其中
所述目标浏览器内核接收所述本地页面的响应数据以完成初始化。
7.如权利要求6所述的方法,其中,拦截要加载的所述特定页面由所述目标浏览器的外壳实现,并且所述拦截包括返回所述本地页面和继续请求所述特定页面的后续操作选项。
8.如权利要求1所述的方法,其中,所述特定页面是所述目标浏览器的用户频繁访问页面;
并且所述方法还包括:
更新所述用户频繁访问页面的资源缓存。
9.一种浏览器内核初始化装置,包括:
启动单元,用于响应于启动目标浏览器的命令,启动目标浏览器;
页面加载单元,用于响应于目标浏览器启动完成,加载特定页面,其中所述特定页面被设置为对目标用户不可见;
初始化单元,基于所述目标浏览器的内核接收页面加载的响应数据,以完成初始化。
10.如权利要求9所述的装置,其中,所述页面加载单元用于:
在目标浏览器启动后的特定时间点,加载所述特定页面。
11.如权利要求10所述的装置,其中,所述浏览器内核接收响应数据的页面以及所述特定时间点,根据目标用户的用户数据和/或是所述目标浏览器的大用户数据来确定和/或更新。
12.如权利要求9所述的装置,其中,所述页面加载单元还包括:
视图创建单元,用于响应于目标浏览器启动完成,创建目标视图;以及
加载子单元,用于在所述目标视图上加载所述特定页面,其中,所述目标视图被构造为对用户不可见。
13.如权利要求12所述的装置,其中,不将所述目标视图加入ViewTree以使得所述目标视图对用户不可见。
14.如权利要求9所述的装置,还包括:
拦截单元,用于拦截要加载的所述特定页面;
返回单元,用于返回本地页面,
其中,所述初始化单元基于所述目标浏览器内核接收所述本地页面的响应数据以完成初始化。
15.如权利要求14所述的装置,其中,拦截要加载的所述特定页面由所述目标浏览器的外壳实现,并且所述拦截包括返回所述本地页面和继续请求所述特定页面的后续操作选项。
16.如权利要求9所述的装置,其中,所述特定页面是所述目标浏览器的用户频繁访问页面;
并且所述装置还包括:
更新单元,用于更新所述用户频繁访问页面的资源缓存。
17.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-8中任何一项所述的方法。
18.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711182930.3A CN109948085A (zh) | 2017-11-23 | 2017-11-23 | 浏览器内核初始化方法、装置、计算设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711182930.3A CN109948085A (zh) | 2017-11-23 | 2017-11-23 | 浏览器内核初始化方法、装置、计算设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109948085A true CN109948085A (zh) | 2019-06-28 |
Family
ID=67003917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711182930.3A Pending CN109948085A (zh) | 2017-11-23 | 2017-11-23 | 浏览器内核初始化方法、装置、计算设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109948085A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032087A (zh) * | 2019-12-25 | 2021-06-25 | 亚信科技(南京)有限公司 | 一种基于Chromium内核的数据交互方法及装置 |
CN113591000A (zh) * | 2021-07-13 | 2021-11-02 | 青岛海信移动通信技术股份有限公司 | 一种浏览器引擎的切换方法和装置及设备 |
CN114518912A (zh) * | 2022-02-21 | 2022-05-20 | 度小满科技(北京)有限公司 | 一种页面加载方法、装置、设备及可读存储介质 |
CN114745363A (zh) * | 2022-03-18 | 2022-07-12 | 成都数联云算科技有限公司 | 一种前端应用请求消息的处理方法及系统及装置及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030710A1 (en) * | 2001-05-21 | 2004-02-12 | Thomas Shadle | Rules-based task browser for engineering systems |
CN102663081A (zh) * | 2012-04-01 | 2012-09-12 | 杭州格畅科技有限公司 | 在线应用平台内浏览网页的方法及在线浏览器、在线应用平台 |
CN102768624A (zh) * | 2011-05-04 | 2012-11-07 | 北京积木恒硕科技有限公司 | 一种基于Web标准构建终端操作系统的方法 |
CN103345405A (zh) * | 2013-06-09 | 2013-10-09 | 贝壳网际(北京)安全技术有限公司 | 应用程序的启动方法、装置和客户端 |
US20140013250A1 (en) * | 2012-07-08 | 2014-01-09 | Yahoo! Inc. | Method and system for visualizing patterns during internet browsing |
CN104881273A (zh) * | 2014-02-27 | 2015-09-02 | 腾讯科技(深圳)有限公司 | 一种网页渲染的分析方法和终端设备 |
CN104899052A (zh) * | 2014-03-07 | 2015-09-09 | 可牛网络技术(北京)有限公司 | 一种应用软件首页的启动方法及启动装置 |
CN105117267A (zh) * | 2015-09-23 | 2015-12-02 | 北京金山安全软件有限公司 | 浏览器启动方法、装置及终端设备 |
CN107368560A (zh) * | 2017-07-07 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 移动应用的页面实现方法和装置、计算机可读存储介质 |
-
2017
- 2017-11-23 CN CN201711182930.3A patent/CN109948085A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030710A1 (en) * | 2001-05-21 | 2004-02-12 | Thomas Shadle | Rules-based task browser for engineering systems |
CN102768624A (zh) * | 2011-05-04 | 2012-11-07 | 北京积木恒硕科技有限公司 | 一种基于Web标准构建终端操作系统的方法 |
CN102663081A (zh) * | 2012-04-01 | 2012-09-12 | 杭州格畅科技有限公司 | 在线应用平台内浏览网页的方法及在线浏览器、在线应用平台 |
US20140013250A1 (en) * | 2012-07-08 | 2014-01-09 | Yahoo! Inc. | Method and system for visualizing patterns during internet browsing |
CN103345405A (zh) * | 2013-06-09 | 2013-10-09 | 贝壳网际(北京)安全技术有限公司 | 应用程序的启动方法、装置和客户端 |
CN104881273A (zh) * | 2014-02-27 | 2015-09-02 | 腾讯科技(深圳)有限公司 | 一种网页渲染的分析方法和终端设备 |
CN104899052A (zh) * | 2014-03-07 | 2015-09-09 | 可牛网络技术(北京)有限公司 | 一种应用软件首页的启动方法及启动装置 |
CN105117267A (zh) * | 2015-09-23 | 2015-12-02 | 北京金山安全软件有限公司 | 浏览器启动方法、装置及终端设备 |
CN107368560A (zh) * | 2017-07-07 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 移动应用的页面实现方法和装置、计算机可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032087A (zh) * | 2019-12-25 | 2021-06-25 | 亚信科技(南京)有限公司 | 一种基于Chromium内核的数据交互方法及装置 |
CN113032087B (zh) * | 2019-12-25 | 2024-02-23 | 亚信科技(南京)有限公司 | 一种基于Chromium内核的数据交互方法及装置 |
CN113591000A (zh) * | 2021-07-13 | 2021-11-02 | 青岛海信移动通信技术股份有限公司 | 一种浏览器引擎的切换方法和装置及设备 |
CN113591000B (zh) * | 2021-07-13 | 2024-04-19 | 青岛海信移动通信技术有限公司 | 一种浏览器引擎的切换方法和装置及设备 |
CN114518912A (zh) * | 2022-02-21 | 2022-05-20 | 度小满科技(北京)有限公司 | 一种页面加载方法、装置、设备及可读存储介质 |
CN114518912B (zh) * | 2022-02-21 | 2023-04-25 | 度小满科技(北京)有限公司 | 一种页面加载方法、装置、设备及可读存储介质 |
CN114745363A (zh) * | 2022-03-18 | 2022-07-12 | 成都数联云算科技有限公司 | 一种前端应用请求消息的处理方法及系统及装置及介质 |
CN114745363B (zh) * | 2022-03-18 | 2023-12-15 | 成都数联云算科技有限公司 | 一种前端应用请求消息的处理方法及系统及装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2604326C2 (ru) | Метод просмотра web-страниц, платформа webapp, метод и устройство для исполнения javascript для мобильных терминалов | |
EP3518124A1 (en) | Webpage rendering method and related device | |
CN103502983B (zh) | 利用基于DOM的同构来备忘缓存Web浏览计算 | |
JP4857349B2 (ja) | ポータル・システム内で非同期ポータル・ページを提供するための方法、システム、およびコンピュータ・プログラム | |
US9311425B2 (en) | Rendering a page using a previously stored DOM associated with a different page | |
CN105095280B (zh) | 一种浏览器缓存方法和装置 | |
KR101391894B1 (ko) | 콘텐츠 요청 최적화 | |
US8631394B2 (en) | Static resource processing | |
CN109254773A (zh) | 骨架页面生成方法、装置、设备和存储介质 | |
CN109948085A (zh) | 浏览器内核初始化方法、装置、计算设备和存储介质 | |
CN105205080B (zh) | 冗余文件清理方法、装置和系统 | |
US9749440B2 (en) | Systems and methods for hosted application marketplaces | |
US20140047359A1 (en) | Mechanism for adding new search modes to user agent | |
CN106598972A (zh) | 一种信息显示方法、装置及智能终端 | |
CN113703893B (zh) | 一种页面渲染方法、装置、终端及存储介质 | |
CN113326043B (zh) | 网页渲染方法、网页制作方法及网页渲染系统 | |
CN108241689A (zh) | 页面资源获取方法、装置和客户端设备 | |
CN113157374B (zh) | 页面模式切换方法、装置、设备以及存储介质 | |
US20150106691A1 (en) | Generation of Combined Documents from Content and Layout Documents Based on Semantically Neutral Elements | |
CN113495730A (zh) | 资源包的生成及解析方法和装置 | |
US11126410B2 (en) | Method and apparatus for building pages, apparatus and non-volatile computer storage medium | |
US10846361B2 (en) | User-specific customization of web pages | |
RU2634221C2 (ru) | Способ и устройство для отрисовки представления электронного документа на экране | |
CN116009863B (zh) | 前端页面渲染方法、设备及存储介质 | |
Lonka | Improving the initial rendering performance of react applications through contemporary rendering approaches |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200709 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower Applicant before: Guangzhou Dongjing Computer Technology Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |