浏览器的数据处理方法及装置与流程

文档序号:18188268发布日期:2019-07-17 05:27阅读:283来源:国知局
浏览器的数据处理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种浏览器的数据处理方法及装置。



背景技术:

用户在使用浏览器上网的过程中,由于页面内容较多,需要通过在浏览器窗口拖动滚动条、滑动鼠标滚轮、或者拖动窗口内的滚动区域等,触发滚动操作,通过滚动在滚动区域中显示的滚动页面,实现查看滚动页面的全部内容。

为了实现滚动效果,通常会设置滚动操作的最小位移,一次滚动操作对应的目标位移是最小位移的整数倍。在进行滚动操作时,根据目标位移所包括的最小位移的个数,对应于每个最小位移设置一个滚动页面的目标位置区域,通过依次显示各目标位置区域实现页面的滑动效果。在对滚动操作的处理过程中,针对每个目标位置区域,需要重新验证和计算渲染树,来得到重新绘制页面信息,然后将页面信息合成到浏览器的浏览器窗口。

由于html页面元素多样且复杂,浏览器通过重新验证和计算渲染树来绘制页面信息的实际很长。在用户触发快速滚动操作时,目标位移较长,通常是最小位移的若干倍,在滚动过程中,需依次进行多次绘制页面信息的过程,才可以完成对滚动操作的处理,需要的处理时间较长,在此过程中,浏览器无法响应用户的其他滚动操作,导致滚动操作阻塞,浏览器长时间卡顿。



技术实现要素:

本发明提供一种浏览器的数据处理方法及装置,用以解决在用户触发快速滚动操作时,目标位移较长,通常是最小位移的若干倍,在滚动过程中,需依次进行多次绘制页面信息的过程,才可以完成对滚动操作的处理,需要的处理时间较长,在此过程中,浏览器无法响应用户的其他滚动操作,导致滚动操作阻塞,浏览器长时间卡顿的问题。

本发明的一个方面是提供一种浏览器的数据处理方法,包括:

监听滚动事件,所述滚动事件是指对浏览器窗口上滚动区域中的滚动页面的滚动操作所触发的事件,所述滚动事件至少包括所述滚动操作对应的目标位移;

在监听到所述滚动事件之后,根据所述滚动事件中的目标位移,将所述滚动页面的各目标位置区域合成并显示到所述浏览器窗口上;

根据所述滚动事件中的目标位移,计算所述各目标位置区域的内容信息;

将所述各目标位置区域的内容信息合成到对应的目标位置区域内。

本发明的另一个方面是提供一种浏览器的数据处理装置,包括:

监听模块,用于监听滚动事件,所述滚动事件是指对浏览器窗口上滚动区域中的滚动页面的滚动操作所触发的事件,所述滚动事件至少包括所述滚动操作对应的目标位移;

合成显示模块,用于在监听到所述滚动事件之后,根据所述滚动事件中的目标位移,将所述滚动页面的各目标位置区域合成并显示到所述浏览器窗口上;

计算模块,用于根据所述滚动事件中的目标位移,计算所述各目标位置区域的内容信息;

所述合成显示模块还用于将所述各目标位置区域的内容信息合成到对应的目标位置区域内。

本发明提供的浏览器的数据处理方法及装置,通过在监听到所述滚动事件之后,直接根据所述滚动事件中的目标位移,将所述滚动页面的各目标位置区域合成并显示到所述浏览器窗口上,以在浏览器窗口上显示滚动页面的滚动效果,而无需等待各目标位置区域的内容信息的计算完成,可以及时地展现滚动效果,避免了浏览器滚动操作阻塞和浏览器卡顿的问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明实施例一提供的浏览器的数据处理方法流程图;

图2为本发明实施例二提供的浏览器的数据处理方法流程图;

图3为本发明实施例三提供的浏览器的数据处理装置的结构示意图;

图4为本发明实施例四提供的浏览器的数据处理装置的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

首先对本发明所涉及的名词进行解释:

进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。在面向进程设计的计算机结构中,进程是程序的基本执行实体;在面向线程设计的计算机结构中,进程是线程的容器。

线程:是指运行中的程序的调度单位,也被称为轻量进程,是进程中某个单一顺序的控制流。

异步:是指计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。

事件(event):是由某个对象发出的消息,通常程序时刻都在触发和接收着各种事件,例如鼠标点击事件、键盘事件、以及处理操作系统的各种事件等。本实施例中,用户通过鼠标或者触屏滑动来拖动滚动条时,回触发滚动事件,浏览器可以通过gtk(gimptoolkit)窗口监听该滚动事件,并将滚动事件由gtk窗口传递到相应的进程或者线程,由进程或者线程针对该滚动事件进行相应的处理。在异步机制中,事件是线程之间进行通信的一个非常常用的方式。

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

实施例一

图1为本发明实施例一提供的浏览器的数据处理方法流程图。本发明实施例针对在用户触发快速滚动操作时,目标位移较长,通常是最小位移的若干倍,在滚动过程中,需依次进行多次绘制页面信息的过程,才可以完成对滚动操作的处理,需要的处理时间较长,在此过程中,浏览器无法响应用户的其他滚动操作,导致滚动操作阻塞,浏览器长时间卡顿的问题,提供了浏览器的数据处理方法。如图1,该方法具体步骤如下:

步骤s101、监听滚动事件,滚动事件至少包括滚动操作对应的目标位移。

其中,滚动事件是指对浏览器窗口上滚动区域中的滚动页面的滚动操作所触发的事件。滚动事件至少包括滚动操作对应的目标位移,目标位移是指滚动操作使得浏览器窗口上滚动区域内的滚动页面发生的位移,也即是滚动操作开始时滚动区域显示的滚动页面的滚动位置区域在滚动操作期间移动的距离。

滚动位置区域是指在滚动区域内所显示的滚动页面的部分区域,在滚动页面滚动过程中,滚动位置区域随着滚动页面的移动不断发生变化。

本实施例中,浏览器显示的浏览器窗口中,包括滚动区域和非滚动区域,滚动区域用于显示滚动页面,在滚动页面内容较多在滚动区域内一次无法完全显示时,滚动区域一次只显示滚动页面的一个滚动位置区域。其中,滚动位置区域是滚动页面在滚动区域中显示的部分。在滚动操作进行中,滚动页面每滚动最小位移,滚动页面上滚动位置区域的位置也向对应方向移动最小位移的距离。

用户可以直接在滚动区域进行滚动操作,例如,在滚动区域的拖动操作、或者鼠标滚轮操作、或者触屏终端屏幕上的滑动操作等,来触发滚动事件,以浏览滚动页面的全部或者部分内容。另外,滚动区域还可以包括滚动操作区域,例如,滚动条等,用户还可以通过在滚动操作区域进行滚动操作,例如,拖动滚动条等,来触发滚动事件,以浏览滚动页面的全部或者部分内容。

步骤s102、在监听到滚动事件之后,根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上。

其中,目标位置区域是指在滚动事件处理过程中,依次在滚动区域内显示的滚动页面上的滚动位置区域。

本实施例中,在监听到滚动事件之后,浏览器调用滚动事件处理程序,执行预设的位置更新函数,根据滚动事件中的目标位移,将滚动页面的各目标位置区域依次合成并显示到浏览器窗口上,以实现浏览器在浏览器窗口上显示滚动页面的滚动效果。

其中,预设的位置更新函数的实现可以采用现有技术中任意一种将根据目标位移将各目标位置区域合成并显示到浏览器窗口上的方法实现,本实施例此处不再赘述。

另外,由于还未计算各目标位置区域的内容信息,将滚动页面的各目标位置区域合成并显示到浏览器窗口上之后,目标位置区域对应的页面内容显示为默认页面内容,例如,默认页面内容可以是空白、或者是内容缓存过程中的提示信息等。

步骤s103、根据滚动事件中的目标位移,计算各目标位置区域的内容信息。

本实施例中,在监听到滚动事件之后,该步骤中的根据滚动事件中的目标位移,计算各目标位置区域的内容信息的过程,与步骤s102中根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上的过程,这两个过程是相互独立的两个过程,两个过程之间没有必然的时序关系,可以异步地进行处理。

另外,在监听到滚动事件之后,该步骤s103可以在步骤s102之后进行;或者,该步骤s103还可以与步骤s102并行地进行,以提高浏览器的响应效率。

步骤s104、将各目标位置区域的内容信息合成到对应的目标位置区域内。

在计算得到各目标位置区域的内容信息之后,该步骤中,浏览器将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内,以将各目标位置区域的内容信息进行显示,从而完成滚动事件的处理过程。

本实施例中,步骤s102将滚动页面的各目标位置区域合成并显示到浏览器窗口上之后,就可以展现滚动效果,在等待将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内的过程中,虽然滚动区域内显示的滚动页面的内容信息为默认页面内容,但是浏览器仍然可以响应用户的其他滚动操作,浏览器不会处于卡顿状态。

本发明实施例通过在监听到滚动事件之后,直接根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上,以展现浏览器在浏览器窗口上显示滚动页面的滚动效果,而无需等待各目标位置区域的内容信息的计算完成,可以及时地展现滚动效果,避免了浏览器滚动操作阻塞和浏览器卡顿的问题。

实施例二

图2为本发明实施例二提供的浏览器的数据处理方法流程图。在上述实施例一的基础上,本实施例中,根据滚动事件中的目标位移将滚动页面的各目标位置区域合成并显示到浏览器窗口上的步骤,和根据滚动事件中的目标位移计算各目标位置区域的内容信息的步骤,是异步进行处理的。如图2所示,该方法具体步骤如下:

步骤s201、通过窗口控件监听滚动事件,并将滚动事件传输到第一进程的主线程。

其中,第一进程可以在浏览器打开时创建,是浏览器的主进程。滚动事件是指对浏览器窗口上滚动区域中的滚动页面的滚动操作所触发的事件。滚动事件至少包括滚动操作对应的目标位移,目标位移是指滚动操作使得浏览器窗口上滚动区域内的滚动页面发生的位移,也即是滚动操作开始时滚动区域显示的滚动页面的滚动位置区域在滚动操作期间移动的距离。

滚动位置区域是指在滚动区域内所显示的滚动页面的部分区域,在滚动页面滚动过程中,滚动位置区域随着滚动页面的移动不断发生变化。

本实施例中,浏览器显示的浏览器窗口中,包括滚动区域和非滚动区域,滚动区域用于显示滚动页面,在滚动页面内容较多在滚动区域内一次无法完全显示时,滚动区域一次只显示滚动页面的一个滚动位置区域。其中,滚动位置区域是滚动页面在滚动区域中显示的部分。在滚动操作进行中,滚动页面每滚动最小位移,滚动页面上滚动位置区域的位置也向对应方向移动最小位移的距离。

用户可以直接在滚动区域进行滚动操作,例如,在滚动区域的拖动操作、或者鼠标滚轮操作、或者触屏终端屏幕上的滑动操作等,来触发滚动事件,以浏览滚动页面的全部或者部分内容。另外,滚动区域还可以包括滚动操作区域,例如,滚动条等,用户还可以通过在滚动操作区域进行滚动操作,例如,拖动滚动条等,来触发滚动事件,以浏览滚动页面的全部或者部分内容。

本实施例中,浏览器可以通过窗口控件来监听滚动事件,窗口控制键监听到滚动事件后,将滚动事件传递到第一进程的主线程。例如,通过gtk(gimptoolkit)窗口来监听用户在窗口上的滚动操作触发的滚动事件,gtk窗口将滚动事件传递到第一进程的主线程。

步骤s202、通过运行第一进程的主线程,接收到滚动事件。

该步骤中,浏览器的第一进程的主线程可以接收窗口控件的滚动事件。

步骤s203、通过第一进程的主线程创建合成子线程,并将滚动事件传输到合成子线程。

本实施例中,第一进程的主线程接收滚动事件,并在接收到滚动事件之后,创建合成子线程,将滚动事件传输到合成子线程,后续执行步骤s205,合成子线程在接收到滚动事件时,可以根据滚动事件中的目标位移直接将滚动页面的各目标位置区域合成并显示到浏览器窗口上。

步骤s204、通过第一进程的主线程将滚动事件传输到第二进程的主线程。

其中,第二进程可以为第一进程的子进程。

本实施例中,第一进程的主线程接收滚动事件,并在接收到滚动事件之后,将滚动事件传输到第二进程的主线程,后续执行步骤s206,第二进程的主线程根据滚动事件中的目标位移,计算各目标位置区域的内容信息。

可选地,在接收到滚动事件时,第一进程的主线程可以首先创建合成子线程,然后同时将滚动事件传输到合成子线程和第二进程的主线程。

本实施例中,通过上述步骤s202-s204,浏览器通过第一进程的主线程将滚动事件传递到合成子线程和第二进程的主线程,使得合成子线程和第二进程的主线程可以异步地执行以下两个处理过程:通过运行合成子线程根据滚动事件中的目标位移将滚动页面的各目标位置区域合成并显示到浏览器窗口上,和,通过运行第二进程的主线程根据滚动事件中的目标位移计算各目标位置区域的内容信息。

步骤s205、通过运行合成子线程,根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上。

其中,目标位置区域是指在滚动事件处理过程中,依次在滚动区域内显示的滚动页面上的滚动位置区域。

该步骤中,浏览器调用合成子线程,执行预设的位置更新函数,根据滚动事件中的目标位移,将滚动页面的各目标位置区域依次合成并显示到浏览器窗口上,以实现浏览器在浏览器窗口上显示滚动页面的滚动效果。

具体地,合成子线程,根据滚动事件中的目标位移,确定各目标位置区域及其排列顺序,根据排列顺序,通过循环依次将每个目标位置区域合成并显示到浏览器窗口上,以实现浏览器在浏览器窗口上显示滚动页面的滚动效果。

其中,预设的位置更新函数的实现可以采用现有技术中任意一种将根据目标位移将各目标位置区域合成并显示到浏览器窗口上的方法实现,本实施例此处不再赘述。

另外,由于还未计算各目标位置区域的内容信息,将滚动页面的各目标位置区域合成并显示到浏览器窗口上之后,目标位置区域对应的页面内容显示为默认页面内容,例如,默认页面内容可以是空白、或者是内容缓存过程中的提示信息等。

步骤s206、通过运行第二进程的主线程,根据滚动事件中的目标位移,计算各目标位置区域的内容信息。

本实施例中,浏览器通过调用第二进程的主线程,根据滚动事件中的目标位移,计算各目标位置区域的内容信息的过程,与步骤s205中通过运行合成子线程,根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上的过程,是相互独立的两个过程,两个过程之间没有必然的时序关系,异步地进行处理。

在计算得到各目标位置区域的内容信息之后,第二进程的主线程将各目标位置区域的内容信息存储到共享存储区域中,并向合成子线程发送计算完成通知,以使合成子线程在接收到计算完成通知时,将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内。

可选地,该步骤s206和步骤s205可以并行进行,以提高计算效率,缩短浏览器的响应时间。

另外,在接收到滚动事件之后,在根据滚动事件中的目标位移计算各目标位置区域的内容信息之前,第二进程的主线程执行javascript事件监听器,以监听用户通过浏览器触发的其他事件。

步骤s207、通过运行合成子线程,将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内。

本实施例中,在计算得到各目标位置区域的内容信息之后,第二进程的主线程将各目标位置区域的内容信息存储到共享存储区域中,并向合成子线程发送计算完成通知。

该步骤中,浏览器通过合成子线程在接收计算完成通知时,可以从共享存储区域中获取各目标位置区域的内容信息,并将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内,以将各目标位置区域的内容信息进行显示,从而完成滚动事件的处理过程。

本发明实施例通过第一进程的主线程将滚动事件传递到合成子线程和第二进程的主线程,使得合成子线程和第二进程的主线程可以异步地执行以下两个处理过程:通过运行合成子线程根据滚动事件中的目标位移将滚动页面的各目标位置区域合成并显示到浏览器窗口上,和,通过运行第二进程的主线程根据滚动事件中的目标位移计算各目标位置区域的内容信息;从而可以实现在监听到滚动事件之后,直接根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上,以在浏览器窗口上显示滚动页面的滚动效果,而无需等待各目标位置区域的内容信息的计算完成,可以及时地展现滚动效果,避免了浏览器滚动操作阻塞和浏览器卡顿的问题。

实施例三

图3为本发明实施例三提供的浏览器的数据处理装置的结构示意图。本发明实施例提供的浏览器的数据处理装置可以执行浏览器的数据处理方法实施例提供的处理流程。如图3所示,该装置30包括:监听模块301、合成显示模块302和计算模块303。

具体地,监听模块301用于监听滚动事件,滚动事件是指对浏览器窗口上滚动区域中的滚动页面的滚动操作所触发的事件,滚动事件至少包括滚动操作对应的目标位移。

合成显示模块302用于在监听到滚动事件之后,根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上。

计算模块303用于根据滚动事件中的目标位移,计算各目标位置区域的内容信息。

合成显示模块302还用于将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内。

本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过在监听到滚动事件之后,直接根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上,以在浏览器窗口上显示滚动页面的滚动效果,而无需等待各目标位置区域的内容信息的计算完成,可以及时地展现滚动效果,避免了浏览器滚动操作阻塞和浏览器卡顿的问题。

实施例四

图4为本发明实施例四提供的浏览器的数据处理装置的结构示意图。在上述实施例三的基础上,本实施例中,在监听到滚动事件之后,将滚动页面的各目标位置区域合成并显示到浏览器窗口上,与计算各目标位置区域的内容信息异步地进行处理。如图4所示,合成显示模块302包括:位置合成子模块3021和内容合成子模块3022。

本实施例中,监听模块还包括:事件监听子模块和事件接收子模块。

其中,事件监听子模块,用于通过窗口控件监听滚动事件,并将滚动事件传输到第一进程的主线程。

事件接收子模块,用于通过运行第一进程的主线程,接收到滚动事件,创建合成子线程,并将滚动事件传输到合成子线程和第二进程的主线程。

本实施例中,位置合成子模块3021用于通过运行合成子线程,根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上。

计算模块303还用于:通过运行第二进程的主线程,根据滚动事件中的目标位移,计算各目标位置区域的内容信息,第二进程为第一进程的子进程。

内容合成子模块3022用于通过运行合成子线程,将各目标位置区域的内容信息合成到滚动页面的对应目标位置区域内。

本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过第一进程的主线程将滚动事件传递到合成子线程和第二进程的主线程,使得合成子线程和第二进程的主线程可以异步地执行以下两个处理过程:通过运行合成子线程根据滚动事件中的目标位移将滚动页面的各目标位置区域合成并显示到浏览器窗口上,和,通过运行第二进程的主线程根据滚动事件中的目标位移计算各目标位置区域的内容信息;从而可以实现在监听到滚动事件之后,直接根据滚动事件中的目标位移,将滚动页面的各目标位置区域合成并显示到浏览器窗口上,以在浏览器窗口上显示滚动页面的滚动效果,而无需等待各目标位置区域的内容信息的计算完成,可以及时地展现滚动效果,避免了浏览器滚动操作阻塞和浏览器卡顿的问题。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1