CN108196964A - 一种将数据流模块化的方法和装置 - Google Patents

一种将数据流模块化的方法和装置 Download PDF

Info

Publication number
CN108196964A
CN108196964A CN201711488815.9A CN201711488815A CN108196964A CN 108196964 A CN108196964 A CN 108196964A CN 201711488815 A CN201711488815 A CN 201711488815A CN 108196964 A CN108196964 A CN 108196964A
Authority
CN
China
Prior art keywords
data
page
web
stream processing
processing example
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
Application number
CN201711488815.9A
Other languages
English (en)
Inventor
王峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711488815.9A priority Critical patent/CN108196964A/zh
Publication of CN108196964A publication Critical patent/CN108196964A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种将数据流模块化的方法和装置,其中所述方法包括:当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;通过所述数据流处理实例将所述数据加载请求发送至服务器;接收所述服务器返回的网页数据;通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。该数据流处理实例的多个模块实现数据的请求、接收和处理,由此解决了将前端和后端的数据交互作为一个完整的模块,通过一个完整的模块来实现上述的过程造成代码冗长,可读性低,耦合度高的问题,使整个过程分为数据流处理实例的独立的小模块,其中的代码解耦,提高了代码的可读性和复用率。

Description

一种将数据流模块化的方法和装置
技术领域
本发明涉及通信技术领域,特别是涉及一种将数据流模块化的方法和一种将数据流模块化的装置。
背景技术
随着网络技术的发展,在网站开发和运行过程中,网页的前端和后端的交互方式关系到网页的解析、渲染和显示的效率。
网页开发中最常见是前端和后端交互模式,即通过Ajax(AsynchronousJavaScript and XML,异步的JavaScript和XML)接口获取数据,对数据进行处理并渲染成DOM的过程。
对于一个网页页面,会存在多个前端和后端交互的过程,例如在网页页面上打开另一个链接、该链接下的子链接,又或者是页面的动态刷新等都涉及到通过后端获取数据、对数据处理后渲染在前端显示的过程。如果把每个数据流的处理过程都作为一个完整的模块,通过一个完整的模块来实现上述的过程,就会造成模块的代码非常冗长,可读性低,耦合度过高,此外,大量可复用的逻辑充斥在模块中,造成了资源的浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种将数据流模块化的方法和相应的一种将数据流模块化的装置。
依据本发明的一个方面,提供了一种将数据流模块化的方法,包括:
当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
通过所述数据流处理实例将所述数据加载请求发送至服务器;
接收所述服务器返回的网页数据;
通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
可选地,所述数据加载请求中包括预加载信息,所述通过所述数据流处理实例将所述数据加载请求发送至服务器的步骤包括:
依据所述预加载信息,确定所述数据加载请求的发送时机;
依据所述发送时机,将所述数据加载请求发送至所述服务器。
可选地,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤包括:
对所述网页数据进行预处理,得到网页数据中的数组;
对所述数组进行处理,得到处理后的网页数据;
将处理后的网页数据存储至存储器中。
可选地,所述对所述数组进行处理包括格式转换、去重、去除多余字段、图片预处理中的至少一种。
可选地,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤还包括:
依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息;
依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
可选地,所述在依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据的步骤之后还包括:
对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
可选地,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤还包括:
通过所述页面入口对所述页面进行监听;
当监听到针对所述页面的页面窗口的操作时,返回依据处理后的网页数据,确定所述网页数据对应的元素在所述页面中的布局信息的步骤。
可选地,所述针对所述页面的页面窗口的操作包括页面的缩放操作、最小化操作和最大化操作中的至少一种。
可选地,所述方法还包括:
当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
根据本发明的另一方面,提供了一种将数据流模块化的装置,包括:
实例创建模块,用于当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
加载请求发送模块,用于通过所述数据流处理实例将所述数据加载请求发送至服务器;
数据接收模块,用于接收所述服务器返回的网页数据;
处理模块,用于通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
可选地,所述数据加载请求中包括预加载信息,所述数据流处理实例包括:
预加载器,用于依据所述预加载信息,确定所述数据加载请求的发送时机;
加载器,用于依据所述发送时机,将所述数据加载请求发送至所述服务器。
可选地,所述数据流处理实例包括:
数据转换器,用于对所述网页数据进行预处理,得到网页数据中的数组;
数据处理器,用于对所述数组进行处理,得到处理后的网页数据;
数据管理器,用于将处理后的网页数据存储至存储器中。
可选地,所述对所述数组进行处理包括格式转换、去重、去除多余字段、图片预处理中的至少一种。
可选地,所述数据流处理实例还包括:
数据计算器,用于依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息;
渲染器,用于依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
可选地,所述数据流处理实例后还包括:
动画处理器,用于对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
可选地,所述数据流处理实例还包括:
监听器,用于通过所述页面入口对所述页面进行监听,以及,
当监听到针对所述页面的页面窗口的操作时,返回所述数据计算器以重新确定布局信息。
可选地,所述针对所述页面的页面窗口的操作包括页面的缩放操作、最小化操作和最大化操作中的至少一种。
可选地,所述装置还包括:
删除模块,用于当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
本发明实施例提供了一种将数据流模块化的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述方法的步骤。
根据本发明实施例的一种将数据流模块化的方法,在检测到数据加载请求时,创建数据流处理实例,该数据流处理实例通过不同的模块发送请求、接收网页数据以及对网页数据进行处理,可以将前端需要调用后端的数据的过程抽象为数据流处理实例,该数据流处理实例如同隧道有入口和接口,并且包括多个模块实现数据的请求、接收和处理,由此解决了将前端和后端的数据交互作为一个完整的模块,通过一个完整的模块来实现上述的过程造成代码冗长,可读性低,耦合度高的问题,使整个过程分为数据流处理实例的独立的小模块,其中的代码解耦,提高了代码的可读性和复用率。
数据流处理实例包括多个模块,每个模块自定义事件,页面入口js可以通过监听自定义事件,执行相应的操作,使得整个项目管理更加灵活。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种将数据流模块化的方法实施例1的步骤流程图;
图2示出了根据本发明一个实施例的一种将数据流模块化的方法实施例2的步骤流程图;
图3示出了根据本发明一个示例的一种将数据流模块化的方法流程图;
图4示出了根据本发明一个实施例的一种将数据流模块化的装置实施例的结构框图;
图5示出了根据本发明一个实施例的一种数据处理实例的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种将数据流模块化的方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,当从网页的页面入口检测到数据加载请求时,创建数据流处理实例。
本发明实施例中,网页的页面入口可是指网页请求加载数据的入口,例如可以是请求网页的CSS信息、网页的图片等网页元素的入口,具体而言,该入口可以是前端渲染时调用后端数据的Ajax接口。
当检测到前端通过Ajax接口调用后端数据时,创建数据流处理实例,数据流处理实例可以是根据类创建的对象,每个对象都拥有相同的方法,但各自的数据可能不同,即通过数据流处理实例可以以相同的过程对不同的数据进行处理。数据流处理实例中包含了页面中的业务逻辑处理、数据模型等,当然它也有一系列的生命周期的事件钩子,以对整个数据流处理实例的生成、触发运行、挂着、删除等过程进行控制。
步骤102,通过所述数据流处理实例将所述数据加载请求发送至服务器。
本发明实施例中,数据流处理实例可以设置有加载器(loader),以通过加载器将数据加载请求发送至服务器,例如,前端渲染时需要加载CSS信息,则可以通过css加载器(cssloder)将CSS信息加载请求发送至服务器,或者是需要加载瀑布流数据,还可以通过瀑布流加载器发送加载瀑布流数据的请求至服务器,本领域技术人员可以根据实际情况设置不同的加载器。
步骤103,接收所述服务器返回的网页数据。
本发明实施例中,数据流处理实例的入口可以是数据流处理实例获取数据的接口,例如可以是Ajax接口,出口可以是数据流处理实例对数据渲染后的渲染数据的出口,即数据流处理实例的入口可以从服务器获取数据,出口可以向前端输出渲染数据,因此可以通过数据流处理实例的入口接收网页数据,例如服务器返回的网页元素、网页元素的css信息等。
步骤104,通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
对网页数据渲染的过程通常包括数据格式转换、预处理、存储和渲染等过程,因此数据流处理实例可以包括数据转换器、数据处理器、计算器和渲染器等模块,以通过上述模块对接收到的网页数据进行模块化流程处理,得到最终的目标网页数据,通过数据流处理实例和前端完成前端和后端的交互,将目标网页数据绘制进行显示。
本发明实施例的一种将数据流模块化的方法,在检测到数据加载请求时,创建数据流处理实例,可以将前端需要调用后端的数据的过程抽象为数据流处理实例,由此解决了将前端和后端的数据交互作为一个完整的模块,通过一个完整的模块来实现上述的过程造成代码冗长,可读性低,耦合度高的问题,使整个过程分为多个模块化的流程处理过程,其中的代码解耦,提高了代码的可读性及复用率。
参照图2,示出了根据本发明一个实施例的一种将数据流模块化的方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤201,当从网页的页面入口检测到数据加载请求时,创建数据流处理实例。
步骤202,依据所述预加载信息,确定所述数据加载请求的发送时机。
本发明实施例中,数据流处理实例设置有预加载器(preloader),通过预加载器可以定义网页资源加载的优先级,以预先告知浏览器某些资源可能在将来会被使用到,以确保资源根据其重要性依次加载,预加载器既不会影响重要资源的加载,又不会让次要资源影响自身的加载,例如可以确定页面的字体、动态内容等设置加载的优先级,从而确定其加载时机,可以在有限的网络带宽或者处理能力的环境下,对各种加载请求进行管理,提高了加载效率。
步骤203,依据所述发送时机,将所述数据加载请求发送至所述服务器。
在实际应用中,数据流处理实例还设置有加载器(loader),并且定义有加载器的监听事件,例如设置对网页入口的监听,当监听到相应的事件时,触发加载器将相应的加载请求发送至服务器,例如对于DOM树中的某个节点,设置监听事件为当渲染至该节点时发送数据加载请求,将该数据加载请求和加载时机通过预加载器进行处理,当加载器监听事件时监听到触发加载时机的事件时,将数据加载请求通过Ajax接口发送至服务器以请求加载数据。
步骤204,对所述网页数据进行预处理,得到网页数据中的数组。
本发明实施例中,数据流处理示例包括数据转换器,通过数据转换器对网页数据进行预处理,以将网页数据转换为数组,具体可以包括:
1、网页结构化,即将网页数据中的HTML代码删掉,提取出网页内容。
2、消噪,在网页结构化中,已经删掉了HTML代码,剩下了网页内容,那么消噪指的就是留下网页的各种数据,删掉没用的内容,比如版权。
3、查重,查找重复的网页内容,如果找到重复的内容,就删除。
4、提取网页数据中的数组。
在一个网页中存在大量的数据,如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,在网页中通常使用数组(array)的数据结构,通过数组可以存储相同数据类型的元素,可以将100个数存储到数组中,因此,需要提取网页数据中的数组,以获取数组的每个元素代表的数据。
步骤205,对所述数组进行处理,得到处理后的网页数据。
本发明实施例中,数据流处理实例可以设置有数据处理器,以对网页数据中的数组进行处理,以获取数组对应的网页数据,具体而言,可以对数组进行遍历,获取每个数组的元素对应的网页数据,例如,对于瀑布流页面中的图片,数组中的每个元素代表一个图片的图像数据,因此可以对数组的中元素遍历,逐条对数组中的元素进行处理,提取每个元素对应的图像数据,并且将图像数据转换为统一格式的图像数据,比如,由于服务器搜索到的图像数据来源较广,其格式可能较多,如jpg、jpeg、png、gif、bmp等等。为方便管理,可以将图像数据转换为统一的格式,如在对于静态图像数据转换为jpeg,对于动态图像数据转换为gif,以显示动态表情等,对数组进行处理还包括去重、去除多余字段、图片预处理中的至少一种,例如去除重复的图像数据,去取文本中的多余字段,图片的裁剪缩放等,以得到处理后的网页数据。
本领域技术人员可以根据网页数据的类型做相应的处理,而并不仅仅限于上述示例中图像数据的处理,本发明实施例对数组进行处理的方式不加以限制。
步骤206,将处理后的网页数据存储至存储器中。
本发明实施例中,为了提高渲染效率,可以将对数组处理后得到的网页数据存储在存储器中,例如,可以将瀑布流页面需要加载的图片以数组的形式存储在缓存中,以便后续渲染计算时,通过数据管理器读取缓存中的图片进行计算和渲染。
步骤207,依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息。
本发明实施例的数据流处理示例设置有数据计算器(calculater),当监听到渲染事件时,可以从缓存中通过数据管理器读取相应的网页数据的布局数据,计算网页数据对应的网页元素在页面中的布局信息,具体而言,可以根据网页数据中的CSS信息,计算网页数据对应的网页元素在网页中的位置、显示区域大小尺寸、裁切方案等等,例如,对于瀑布流页面,当监听到需要对某一图片进行渲染时,可以通过数据管理器在缓存中读取该图片的数据,例如读取图片的尺寸大小、图片的像素数据等,可以根据瀑布流页面的显示区域的尺寸大小和瀑布流图片的尺寸大小,计算瀑布流图片在瀑布流页面中的行或者列,以及对瀑布流图片的裁切缩放等布局信息。
步骤208,依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
在监听到数据计算器确定网页数据的布局信息,或者缓存中已经存储有网页数据的布局信息当监听到对网页数据的渲染事件时,数据流处理实例可以启动渲染器(render)对网页数据进行渲染,具体而言,可以根据布局信息中的网页数据对应的网页元素在页面中的位置、大小、背景、边框等信息进行绘制,将网页数据对应的网页元素在页面上进行显示。
步骤209,对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
网页数据可以包括静态网页数据和动态网页数据,当对动态网页数据进行渲染时,数据流处理实例可以通过动画处理器(animator)对动态网页数据进行动画处理,具体而言,通过渲染器对动画的每帧图像进行渲染后,通过动画处理器定义播放背景、动画中每帧图像的来源地址、播放顺序、循环播放的次数、画面方向等,通过上述处理后可以得到动画处理后的渲染数据。
当然,动画处理也可以是调用已有的视频数据,此时动画中每帧图像的来源地址可以是视频数据的地址。
在本发明的一种实施例中,由于动画在页面中往往需要加装的时间较长,并且为了保证动画播放的流畅性,往往需要进行预加载,因此可以将动画处理后的渲染数据发送至预加载器中,以在页面渲染显示动画时,加快动画的显示效率。
步骤210,通过所述页面入口对所述页面进行监听。
本发明实施例的数据流处理实例还设置有监听器(watcher),监听器可以通过页面入口对页面进行监听,例如可以对页面上的元素的操作进行监听,比如监听用户是否点击页面上的超链接;还可以对页面的页面窗口的操作进行监听,比如用户拉动页面上的滚动条、页面窗口的缩放、最小化和最大化、字体更改等操作,当然还可以对页面上的其它操作进行监听,本领域技术人员可以根据实际情况设置不同的监听事件,本发明实施例对此不加以限制。
步骤211,当监听到针对所述页面的页面窗口的操作时,返回依据处理后的网页数据,确定所述网页数据对应的元素在所述页面中的布局信息的步骤。
用户对页面窗口的操作一般会造成页面的刷新,这一过程通常会触发重绘(repaint)事件,造成页面的布局有可能发生变化,需要回流(reflows),重新确定网页元素的布局、显示样式等,因此需要返回步骤207重新确定页面的网页元素的布局信息。例如,对于瀑布流页面,当页面窗口缩小时,显示区域缩小,需要重新确定瀑布流页面中图片的行或列,以及图片的裁切等,然后重新渲染进行页面的刷新。
步骤212,当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
当页面渲染完成后,数据处理实例的预加载器未检测预加载请求,比如,用户在页面渲染完成显示页面后,整个页面需要加载的数据已经加载完成,用户正在浏览页面上的内容,没有对页面进行任何的操作,则预加载器未检测到预加载请求;又或者用户在页面渲染完成显示页面后,未对页面进行页面窗口的缩放、刷新、最大化和最大化等操作,则页面不需要刷新,则监视器未检测到针对页面的页面窗口的操作,则可以删除数据流处理实例,对数据流处理实例进行销毁,以释放内存。
上述对数据流处理实例的各个过程进行了说明,需要说明的是,上述过程并不是整个过程所必需的,例如,数据化处理实例支持传入初始化数据,即网页的数据已经加载,则会直接跳转至步骤204。
本发明实施例中,数据流处理实例包括数据预加载、加载、数据转换、数据处理、存储、数据计算、数据渲染等过程,可以将网页前端和后端需要交互的过程通过数据流处理实例的多个模块的进行模块化处理,整个前后端交互的流程分解为各自独立的小模块,将模块化整为零,使其中的代码解耦,提高了代码的可读性及复用率。
本发明实施例中,数据流处理实例的各个过程均设置有自定义的监听事件,通过监听事件对相应的过程执行相应的特殊操作,使得整个项目管理更加灵活。
图3示出了根据本发明一个示例的一种将数据流模块化的方法流程图,以下结合示例对本发明实施例的数据流处理实例将数据流模块化的方法进行说明,如图3所述,数据流处理实例包括预加载器(preloader)、加载器(loader)、数据转换器(datatransfer)、数据处理器(datahandler)、数据管理器(datamanager)、数据计算器(calculater)、渲染器(render)、动画处理器(animator)和监视器(watcher),数据流模块化的方法包括:
S1,预加载器确定Ajax请求的发送时机。
S2,加载器发送Ajax请求至服务器。
S3,数据转换器对服务器返回的网页数据进行预处理,并提取数组部分。
S4,数据处理器对数组进行逐条处理,如转换字段成统一的格式、删除重复项、删除不必要的字段、预处理图片等,得到处理后的网页数据,并保存。
S5,数据管理器对存储的网页数据进行管理。
S6、数据计算器抽取出存储器中未渲染的网页数据进行计算,如实际渲染尺寸、图片裁切方案等布局信息。
S7、渲染器将计算后的网页数据进行渲染,转换成html,并插入到DOM中。
S8、动画处理器对渲染后的数据进行动画处理,返回预加载器。
S9、启动监视器对DOM进行监听,当监听到resize、fullscreen等事件时,则跳转到S6重新计算确定布局信息。
本示例的数据流处理实例包括预加载器、加载器、数据转换器、数据处理器、数据管理器、数据计算器、渲染器、动画处理器和监视器,可以将网页前端和后端需要交互的过程通过数据流处理实例的多个模块的进行模块化处理,整个前后端交互的流程分解为各自独立的小模块,将模块化整为零,使其中的代码解耦,提高了代码的可读性及复用率。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了根据本发明一个实施例的一种将数据流模块化的装置实施例的结构框图,具体可以包括如下模块:
实例创建模块301,用于当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
加载请求发送模块302,用于通过所述数据流处理实例将所述数据加载请求发送至服务器;
数据接收模块303,用于接收所述服务器返回的网页数据;
处理模块304,用于通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
如图5所示,所述数据加载请求中包括预加载信息,所述数据流处理实例包括:
预加载器,用于依据所述预加载信息,确定所述数据加载请求的发送时机;
加载器,用于依据所述发送时机,将所述数据加载请求发送至所述服务器。
优选地,所述数据流处理实例包括:
数据转换器,用于对所述网页数据进行预处理,得到网页数据中的数组;
数据处理器,用于对所述数组进行处理,得到处理后的网页数据;
数据管理器,用于将处理后的网页数据存储至存储器中。
优选地,所述对所述数组进行处理包括格式转换、去重、去除多余字段、图片预处理中的至少一种。
优选地,所述数据流处理实例还包括:
数据计算器,用于依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息;
渲染器,用于依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
优选地,所述数据流处理实例还包括:
动画处理器,用于对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
优选地,所述数据流处理实例还包括:
监听器,用于通过所述页面入口对所述页面进行监听,以及,
当监听到针对所述页面的页面窗口的操作时,返回所述数据计算器以重新确定布局信息。
优选地,所述针对所述页面的页面窗口的操作包括页面的缩放操作、最小化操作和最大化操作中的至少一种。
优选地,所述装置还包括:
删除模块,用于当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
本发明实施例还提供了一种将数据流模块化的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一和/或实施例二的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例一和/或实施例二的方法的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的将数据流模块化的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种将数据流模块化的方法,包括:
当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
通过所述数据流处理实例将所述数据加载请求发送至服务器;
接收所述服务器返回的网页数据;
通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
A2、如权利要求A1所述的方法,其特征在于,所述数据加载请求中包括预加载信息,所述通过所述数据流处理实例将所述数据加载请求发送至服务器的步骤包括:
依据所述预加载信息,确定所述数据加载请求的发送时机;
依据所述发送时机,将所述数据加载请求发送至所述服务器。
A3、如权利要求A1-A2任一项所述的方法,其特征在于,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤包括:
对所述网页数据进行预处理,得到网页数据中的数组;
对所述数组进行处理,得到处理后的网页数据;
将处理后的网页数据存储至存储器中。
A4、如权利要求A1-A3任一项所述的方法,其特征在于,所述对所述数组进行处理包括格式转换、去重、去除多余字段、图片预处理中的至少一种。
A5、如权利要求A1-A4任一项所述的方法,其特征在于,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤还包括:
依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息;
依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
A6、如权利要求A1-A5任一项所述的方法,其特征在于,所述在依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据的步骤之后还包括:
对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
A7、如权利要求A1-A6任一项所述的方法,其特征在于,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤还包括:
通过所述页面入口对所述页面进行监听;
当监听到针对所述页面的页面窗口的操作时,返回依据处理后的网页数据,确定所述网页数据对应的元素在所述页面中的布局信息的步骤。
A8、如权利要求A1-A7任一项所述的方法,其特征在于,所述针对所述页面的页面窗口的操作包括页面的缩放操作、最小化操作和最大化操作中的至少一种。
A9、如权利要求A1-A8任一项所述的方法,其特征在于,所述方法还包括:
当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
B10、一种将数据流模块化的装置,包括:
实例创建模块,用于当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
加载请求发送模块,用于通过所述数据流处理实例将所述数据加载请求发送至服务器;
数据接收模块,用于接收所述服务器返回的网页数据;
处理模块,用于通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
B11、如权利要求B10所述的装置,其特征在于,所述数据加载请求中包括预加载信息,所述数据流处理实例包括:
预加载器,用于依据所述预加载信息,确定所述数据加载请求的发送时机;
加载器,用于依据所述发送时机,将所述数据加载请求发送至所述服务器。
B12、如权利要求B10-B11任一项所述的装置,其特征在于,所述数据流处理实例包括:
数据转换器,用于对所述网页数据进行预处理,得到网页数据中的数组;
数据处理器,用于对所述数组进行处理,得到处理后的网页数据;
数据管理器,用于将处理后的网页数据存储至存储器中。
B13、如权利要求B10-B12任一项所述的装置,其特征在于,所述对所述数组进行处理包括格式转换、去重、去除多余字段、图片预处理中的至少一种。
B14、如权利要求B10-B13任一项所述的装置,其特征在于,所述数据流处理实例还包括:
数据计算器,用于依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息;
渲染器,用于依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
B15、如权利要求B10-B14任一项所述的装置,其特征在于,所述数据流处理实例后还包括:
动画处理器,用于对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
B16、如权利要求B10-B15任一项所述的装置,其特征在于,所述数据流处理实例还包括:
监听器,用于通过所述页面入口对所述页面进行监听,以及,
当监听到针对所述页面的页面窗口的操作时,返回所述数据计算器以重新确定布局信息。
B17、如权利要求B10-B16任一项所述的装置,其特征在于,所述针对所述页面的页面窗口的操作包括页面的缩放操作、最小化操作和最大化操作中的至少一种。
B18、如权利要求B10-B17任一项所述的装置,其特征在于,所述装置还包括:
删除模块,用于当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
C19、一种将数据流模块化的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求A1至A9任一项所述方法的步骤。
D20、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求A1至A9任一项所述方法的步骤。

Claims (10)

1.一种将数据流模块化的方法,包括:
当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
通过所述数据流处理实例将所述数据加载请求发送至服务器;
接收所述服务器返回的网页数据;
通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
2.如权利要求1所述的方法,其特征在于,所述数据加载请求中包括预加载信息,所述通过所述数据流处理实例将所述数据加载请求发送至服务器的步骤包括:
依据所述预加载信息,确定所述数据加载请求的发送时机;
依据所述发送时机,将所述数据加载请求发送至所述服务器。
3.如权利要求1-2任一项所述的方法,其特征在于,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤包括:
对所述网页数据进行预处理,得到网页数据中的数组;
对所述数组进行处理,得到处理后的网页数据;
将处理后的网页数据存储至存储器中。
4.如权利要求1-3任一项所述的方法,其特征在于,所述对所述数组进行处理包括格式转换、去重、去除多余字段、图片预处理中的至少一种。
5.如权利要求1-4任一项所述的方法,其特征在于,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤还包括:
依据处理后的网页数据,确定所述处理后的网页数据对应的网页元素在所述页面中的布局信息;
依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据。
6.如权利要求1-5任一项所述的方法,其特征在于,所述在依据所述布局信息,对所述处理后的网页数据进行渲染,得到渲染后的网页数据的步骤之后还包括:
对渲染后的网页数据进行动画处理,得到动画处理后的渲染网页数据。
7.如权利要求1-6任一项所述的方法,其特征在于,所述通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据的步骤还包括:
通过所述页面入口对所述页面进行监听;
当监听到针对所述页面的页面窗口的操作时,返回依据处理后的网页数据,确定所述网页数据对应的元素在所述页面中的布局信息的步骤。
8.如权利要求1-7任一项所述的方法,其特征在于,所述针对所述页面的页面窗口的操作包括页面的缩放操作、最小化操作和最大化操作中的至少一种。
9.如权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
当从所述页面入口未检测到数据加载请求或未监听到针对所述页面的页面窗口的操作时,删除所述数据流处理实例。
10.一种将数据流模块化的装置,包括:
实例创建模块,用于当从网页的页面入口检测到数据加载请求时,创建数据流处理实例;
加载请求发送模块,用于通过所述数据流处理实例将所述数据加载请求发送至服务器;
数据接收模块,用于接收所述服务器返回的网页数据;
处理模块,用于通过所述数据流处理实例对所述网页数据进行处理,得到目标网页数据。
CN201711488815.9A 2017-12-29 2017-12-29 一种将数据流模块化的方法和装置 Pending CN108196964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711488815.9A CN108196964A (zh) 2017-12-29 2017-12-29 一种将数据流模块化的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711488815.9A CN108196964A (zh) 2017-12-29 2017-12-29 一种将数据流模块化的方法和装置

Publications (1)

Publication Number Publication Date
CN108196964A true CN108196964A (zh) 2018-06-22

Family

ID=62587334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711488815.9A Pending CN108196964A (zh) 2017-12-29 2017-12-29 一种将数据流模块化的方法和装置

Country Status (1)

Country Link
CN (1) CN108196964A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213952A (zh) * 2018-08-02 2019-01-15 平安科技(深圳)有限公司 页面访问处理方法、装置、计算机设备及存储介质
CN109284464A (zh) * 2018-08-29 2019-01-29 网宿科技股份有限公司 页面加载方法及终端、页面响应方法及服务器
CN109658485A (zh) * 2018-11-21 2019-04-19 平安科技(深圳)有限公司 网页动画绘制方法、装置、计算机设备和存储介质
CN109859414A (zh) * 2018-12-21 2019-06-07 艾体威尔电子技术(北京)有限公司 一种实现POS机Logo数组编辑生成的方法及系统
CN111367519A (zh) * 2018-12-26 2020-07-03 北京奇虎科技有限公司 页面零件化使用方法、装置、计算设备及计算机存储介质
WO2020233056A1 (zh) * 2019-05-21 2020-11-26 深圳壹账通智能科技有限公司 基于h5页面的动画显示方法、装置、设备及存储介质
CN112579241A (zh) * 2020-12-22 2021-03-30 广州博冠信息科技有限公司 页面布局方法和装置、计算机可读存储介质、电子设备
CN113760557A (zh) * 2020-05-29 2021-12-07 北京沃东天骏信息技术有限公司 页面数据的发送方法、装置、电子设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731391A (zh) * 2004-08-06 2006-02-08 佳能株式会社 布局处理方法、信息处理装置
CN102855318A (zh) * 2012-08-31 2013-01-02 北京搜狗信息服务有限公司 网页预加载方法与系统
CN103778236A (zh) * 2014-01-26 2014-05-07 网宿科技股份有限公司 网页数据分发处理方法和装置及网页生成处理方法和装置
CN104603756A (zh) * 2012-08-16 2015-05-06 高通股份有限公司 经由沙盒执行的推测性的资源预提取
CN105095200A (zh) * 2014-04-16 2015-11-25 北大方正集团有限公司 以瀑布流方式显示图片的方法和设备
CN105630411A (zh) * 2015-12-18 2016-06-01 小米科技有限责任公司 内存管理方法及装置
CN106874023A (zh) * 2015-12-14 2017-06-20 腾讯科技(深圳)有限公司 动态页面加载方法和装置
CN107168628A (zh) * 2017-04-25 2017-09-15 福建星网视易信息系统有限公司 一种滑屏显示方法和装置
US20170286563A1 (en) * 2013-07-12 2017-10-05 Alibaba Group Holding Limited Method and device for displaying a web page
CN107368560A (zh) * 2017-07-07 2017-11-21 腾讯科技(深圳)有限公司 移动应用的页面实现方法和装置、计算机可读存储介质
US20170346970A1 (en) * 2016-05-11 2017-11-30 Kabushiki Kaisha Toshiba System and method for remote device interface customization

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731391A (zh) * 2004-08-06 2006-02-08 佳能株式会社 布局处理方法、信息处理装置
CN104603756A (zh) * 2012-08-16 2015-05-06 高通股份有限公司 经由沙盒执行的推测性的资源预提取
CN102855318A (zh) * 2012-08-31 2013-01-02 北京搜狗信息服务有限公司 网页预加载方法与系统
US20170286563A1 (en) * 2013-07-12 2017-10-05 Alibaba Group Holding Limited Method and device for displaying a web page
CN103778236A (zh) * 2014-01-26 2014-05-07 网宿科技股份有限公司 网页数据分发处理方法和装置及网页生成处理方法和装置
CN105095200A (zh) * 2014-04-16 2015-11-25 北大方正集团有限公司 以瀑布流方式显示图片的方法和设备
CN106874023A (zh) * 2015-12-14 2017-06-20 腾讯科技(深圳)有限公司 动态页面加载方法和装置
CN105630411A (zh) * 2015-12-18 2016-06-01 小米科技有限责任公司 内存管理方法及装置
US20170346970A1 (en) * 2016-05-11 2017-11-30 Kabushiki Kaisha Toshiba System and method for remote device interface customization
CN107168628A (zh) * 2017-04-25 2017-09-15 福建星网视易信息系统有限公司 一种滑屏显示方法和装置
CN107368560A (zh) * 2017-07-07 2017-11-21 腾讯科技(深圳)有限公司 移动应用的页面实现方法和装置、计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
清华大学计算机与信息管理中心: "《网页设计基础》", 31 May 2010 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213952A (zh) * 2018-08-02 2019-01-15 平安科技(深圳)有限公司 页面访问处理方法、装置、计算机设备及存储介质
CN109284464A (zh) * 2018-08-29 2019-01-29 网宿科技股份有限公司 页面加载方法及终端、页面响应方法及服务器
CN109284464B (zh) * 2018-08-29 2021-07-23 网宿科技股份有限公司 页面加载方法及终端、页面响应方法及服务器
CN109658485A (zh) * 2018-11-21 2019-04-19 平安科技(深圳)有限公司 网页动画绘制方法、装置、计算机设备和存储介质
CN109658485B (zh) * 2018-11-21 2024-05-28 平安科技(深圳)有限公司 网页动画绘制方法、装置、计算机设备和存储介质
CN109859414A (zh) * 2018-12-21 2019-06-07 艾体威尔电子技术(北京)有限公司 一种实现POS机Logo数组编辑生成的方法及系统
CN111367519A (zh) * 2018-12-26 2020-07-03 北京奇虎科技有限公司 页面零件化使用方法、装置、计算设备及计算机存储介质
CN111367519B (zh) * 2018-12-26 2024-03-01 北京奇虎科技有限公司 页面零件化使用方法、装置、计算设备及计算机存储介质
WO2020233056A1 (zh) * 2019-05-21 2020-11-26 深圳壹账通智能科技有限公司 基于h5页面的动画显示方法、装置、设备及存储介质
CN113760557A (zh) * 2020-05-29 2021-12-07 北京沃东天骏信息技术有限公司 页面数据的发送方法、装置、电子设备和存储介质
CN112579241A (zh) * 2020-12-22 2021-03-30 广州博冠信息科技有限公司 页面布局方法和装置、计算机可读存储介质、电子设备

Similar Documents

Publication Publication Date Title
CN108196964A (zh) 一种将数据流模块化的方法和装置
CN107729475B (zh) 网页元素采集方法、装置、终端与计算机可读存储介质
US8972936B2 (en) Version labeling in a version control system
CN103617191A (zh) 使用硬件加速实现浏览器渲染的方法和浏览器
CN106657192B (zh) 一种用于呈现服务调用信息的方法与设备
CN112100550A (zh) 一种页面构建方法和装置
US9934028B2 (en) Tracking changes within javascript object notation
CN103530338B (zh) 在计算设备上进行页面渲染的框架及生成页面的方法
CN108052589A (zh) 一种图文展示的方法、装置及存储介质
CN107665170B (zh) 一种流程测试方法及装置
CN108170497A (zh) 一种页面渲染的方法及装置
CN110321154A (zh) 一种微服务的接口信息展示方法、装置及电子设备
CN108959595A (zh) 基于虚拟与现实的网站构建和体验方法及其装置
CN105094857B (zh) 用于应用加载的方法和系统
CN111435937A (zh) 一种监控平台的刷新方法及装置
CN107391528A (zh) 前端组件依赖信息搜索方法及设备
CN114218052A (zh) 一种业务交互图生成方法、装置、设备及存储介质
CN110162301B (zh) 一种表单渲染方法、装置和存储介质
EP3869330A1 (en) Method and apparatus for lazy loading of js script
US10896480B1 (en) Visualization rendering using an extensible rendering sequence
CN115809056B (zh) 组件复用实现方法、装置和终端设备、可读存储介质
US11195248B2 (en) Method and apparatus for processing pixel data of a video frame
CN110504020A (zh) 医学影像信息系统及浏览器展示dicom图像文件方法
CN108572900B (zh) 一种空白坑位监控的方法、系统、电子设备和存储介质
CN113656041A (zh) 数据处理方法、装置、设备及存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180622

RJ01 Rejection of invention patent application after publication