本发明涉及浏览器页面解析领域,更具体的说是涉及一种EPG引擎及页面解析方法。

背景技术:

传统的浏览器客户端当中,需要消耗相当大的资源和文档对象模型接口进行交互,通常是用JS库。参照图1,浏览器解析页面首先是用户访问网页,DNS服务器即域名解析系统会根据用户提供的域名查找对应的IP地址,找到后,系统会向对应IP地址的网络服务器发送一个http请求。网络服务器解析请求,并发送请求给数据库服务器。数据库服务器将请求的资源返回给网络服务器,网络服务器解析数据,并生成html文件,放入http response中,返回给浏览器,浏览器解析http response。如果网络服务器无法获取数据库服务器返回的资源文件,或者由于并发原因暂时无法处理用户的http请求,浏览器解析 http response后,需要下载html文件,以及html文件内包含的外部引用文件,及文件内涉及的图片或者多媒体文件,由浏览器渲染引擎显示页面的效果。

采用上述方式,存在以下缺点:

1、浏览器页面的每一个节点数据需要频繁的操作文档对象模型接口,对渲染引擎造成极大的性能负担;

2、浏览器内核千差万别,对页面展现有很多兼容性问题;

3、需要在智能机顶盒端安装相应的浏览器客户端,系统庞大臃肿,效率低下;

4、浏览器解析页面有很多漏洞和非安全机制,有安全风险。

技术实现要素:

本发明为了解决上述技术问题提供一种EPG引擎及页面解析方法,其解析页面数据效率高,页面展现兼容性好,安全性高且不需在机顶盒端安装浏览器客户端。

本发明通过下述技术方案实现:

一种EPG引擎,包括:

解析引擎,根据注入的组件解析注入的JS数据,对JS数据进行格式化以成为EPG引擎的数据流;

差分系统,将缓存内的数据流和解析引擎格式化后的数据流进行二进制算法的差异化比较,以形成差分数据,此差分数据相对格式化后的数据流的数据量大为减少,其仅体现之前缓存数据与格式化后的数据流的差异化;

渲染引擎,在已有的显示缓存上进行二进制的差分数据显示合成,并对合成后的数据格式化以形成需要显示的显示数据。

采用本EPG引擎,其不依赖于系统方法的限制,在标准的Android和IOS系统都可以跨平台运行。本引擎的差分系统对缓存内的数据流和解析引擎格式化后的数据流进行二进制算法的差异化比较,渲染引擎仅对差分数据进行显示合成,其数据量小,处理效果高。实现了在不需要浏览器的情况下,采取更加轻量级的解析引擎来解析JS数据,有更好的兼容性、安全性、性能和渲染效果。

文档对象模型是表示文档和访问、操作构成文档的各种元素的应用程序接口。一般的,支持Javascript的所有浏览器都支持DOM。本文所涉及的DOM,是指W3C定义的标准的文档对象模型,它以树形结构表示HTML和XML文档,定义了遍历这个树和检查、修改树的节点的方法和属性。页面含有很多的节点,每一个节点都调用一次文档对象模型会造成极大的性能消耗。而EPG引擎解析仅仅解析JS文件,不同复杂的浏览器解析数据文档的方式,采取差分方式显示图形变化效果,更加高效简洁。

目前市面上流行的浏览器有多种,这些浏览器在处理一个相同的页面时,表现或行为有时会有差异。这种差异可能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏览器下无法正常浏览。我们把引起这些差异的问题统称为“浏览器兼容性问题”。浏览器的工作模式常被称为“渲染模式”。实际上浏览器不同的工作模式不仅对渲染有影响,对代码的解析以及脚本的行为也同样有影响。从更广泛的角度来看,浏览器的工作模式的差异还体现在处理 HTML 页面的时候,处理 XML 及一些非 WEB 内容时也有模式上的差异。EPG引擎采取独立的JS解析引擎,不依赖于系统的浏览器组件和系统显示模式,采取独立的渲染方式,兼容性好。只与系统的通用模块进行交互,能够保证效果的一致性。

浏览器体积庞大,安装客户端需要大量的存储空间,而采取系统内核的浏览器依赖于系统组件本身,启动需要同时启动很多的系统组件,造成系统的资源巨大耗费,整个体系臃肿而难以维护。EPG引擎只解析JS文件本身文本数据,架构轻量化,加载过程可进行定制,适应性更强。

常见的漏洞和安全机制有:第一类是网页欺骗,第二类是拒绝服务,第三类是规则匹配不完善,第四类是未预期的用户行为,第五类是自有协议下的问题。EPG引擎解析JS页面的方法为定制组件的定义来组织界面呈现和逻辑关系,定制组件的属性为全面满足UI的动态布局,业务接口高度定制化定义,避免了通用漏洞的安全问题。

作为优选,所述组件为业务组件。

作为优选,所述组件包括图片组件、播放组件、列表组件、进度组件、下拉组件、单选框组件、滚动条组件、鉴权组件中的一种或多种。例如图片组件封装了图片资源的获取,图片资源的展示,图片资源的容错,焦点的聚焦,移动动画的效果,入口参数的定义等一系列功能。播放组件封装了解码模块,播控模块,快进快退模块,视频切换功能,缩放功能等接口功能,鉴权组件封装了加密解密,字符拼接,数据存取,信息发布等功能。组件高度封装,界面开发者只需要了解组件的功能而不用去开发具体组件具体功能,实现UI布局的快速部署和便捷的功能模块调用方式。

作为优选,所述差分数据为二维数组数据。

一种页面解析方法,包括以下步骤:

定义具有EPG格式的JS数据页面,将业务封装为组件,定义到页面数据上;

根据组件对注入的JS数据进行解析操作;

将格式化的数据流与缓存内的数据流进行二进制算法的差异化比较,形成差分数据;

在已有的显示缓存上进行二进制的差分数据显示合成,再对合成后的数据格式化。

上述页面解析方法对JS调用的业务显示和方法封装定义,抽象最常用的业务组件,使页面的开发工作大幅度降低,所有业务的实现都封装为组件进行业务组合,解决了C/S客户端无法像页面浏览一样进行业务的快速部署,也解决了浏览器客户端解析页面数据的效率低下,效果差等一系列问题。

所述组件包括图片组件、播放组件、列表组件、进度组件、下拉组件、单选框组件、滚动条组件、鉴权组件中的一种或多种。

本发明与现有技术相比,至少具有如下的优点和有益效果:

1、本发明的方法和EPG引擎对缓存内的数据流和格式化后的数据流进行二进制算法的差异化比较,渲染引擎仅对差分数据进行显示合成,其数据量小,处理效果高。

2、本发明对JS调用的业务显示和方法封装定义,将业务抽象为组件,使页面的开发工作大幅度降低,所有的实现都封装为组件进行业务组合,解决了C/S客户端无法像页面浏览一样进行业务的快速部署也解决了浏览器客户端解析页面数据的效率低下,效果差等问题。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为现有浏览器客户端的原理框图。

图2为本发明的EPG引擎的原理框图。

具体实施方式

本发明涉及手机与网络电视,智能机顶盒等领域。为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例1

如图2所示一种EPG引擎,包括解析引擎、差分系统和渲染引擎,

解析引擎,根据注入的组件解析注入的JS数据;

差分系统,将缓存内的数据流和解析引擎格式化后的数据流进行二进制算法的差异化比较,以形成差分数据,差分数据以二维数组数据的形式体现;

渲染引擎,在已有的显示缓存上进行二进制的差分数据显示合成,并对合成后的数据格式化。

格式化后的合成数据即需要显示的数据,页面显示调用本地系统方法接口,将页面效果最终显示在系统窗口资源上,完成智能引擎的运行过程。

EPG引擎需事先下载注入按EPG格式解析规范封装好的业务组件并定义到页面数据上,页面数据采用JS数据,简化了页面的数据格式,封装了EPG的组件,简化了JS的开发过程。

组件为业务组件,具体可包括图片组件、播放组件、列表组件、进度组件、下拉组件、单选框组件、滚动条组件、鉴权组件中的一种或多种。

实施例2

一种页面解析方法,包括以下步骤:

定义具有EPG格式的JS数据页面,将业务封装为组件,定义到页面数据上;

根据组件对注入的JS数据进行解析操作,对JS数据进行格式化以成为EPG引擎的数据流;

将格式化的数据流与缓存内的数据流进行二进制算法的差异化比较,形成差分数据,此差分数据相对格式化后的数据流的数据量大为减少,其仅体现之前缓存数据与格式化后的数据流的差异化,差分数据可以以二维数组数据的形式体现;

在已有的显示缓存上进行二进制差分数据显示合成,再对合成后的数据格式化。

组件包括图片组件、播放组件、列表组件、进度组件、下拉组件、单选框组件、滚动条组件、鉴权组件中的一种或多种。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

android epg界面实现,一种EPG引擎及页面解析方法与流程相关推荐

  1. android字符串两端对齐,一种AndroidTextView两端对齐的实现方法与流程

    技术特征: 1.一种Android TextView两端对齐的实现方法,其特征在于,包括: 数据管理器拿到系统属性,从缓存管理器中获取测量数据: 测量管理器从数据管理器中获取各种所需系统属性与文本内容 ...

  2. 一种通用嵌入式LCD页面切换方法

    一种通用嵌入式LCD页面切换方法 在资源较匮乏的嵌入式系统上,无法运行操作系统,此种情形下,通过按键控制LCD界面的切换时,若不采取一定的逻辑框架,在需求变动时,程序逻辑改动较大.页面逐渐增多时,前期 ...

  3. android 画布裁剪,一种基于Android系统对UI控件进行轮廓剪裁及美化的方法与流程...

    本发明涉及Android应用的技术领域,特别涉及一种基于Android系统对UI控件进行轮廓剪裁及美化的方法. 背景技术: 目前,随着智能电视的普及,Android应用层出不穷,而那些表现形式单一.传 ...

  4. android 封装scpi 命令,一种scpi命令定义、解析、执行和测试的方法

    一种scpi命令定义.解析.执行和测试的方法 [技术领域] [0001]本发明涉及程序控制领域,特别涉及一种SCPI命令定义.解析.执行和测试的方法. [背景技术] [0002]SCPI (Stand ...

  5. Android开发之打开指定APP | 打开APP任意页面的方法

    方法一: 此方法只是打开APP,说白了就是类似你手动点击APP图标打开而已 PackageManager packageManager = getPackageManager(); Intent in ...

  6. html实现价格随数量变化,一种商品价格智能分段递减定价方法与流程

    本发明涉及一种商品售价定价方法,特别涉及一种商品价格智能分段递减定价方法,属于电子商务领域. 背景技术: 定价是市场营销中一个十分关键的过程.价格通常是影响交易成败的重要因素,同时又是市场营销中最难以 ...

  7. uvm 形式验证_一种基于UVM的总线验证方法与流程

    本发明涉及芯片设计的功能验证领域,尤其是一种基于UVM的总线验证方法. 背景技术: 随着集成电路工艺的不断进步,集成电路的规模和复杂度也在不断地提高,验证的难度也越来越大.在集成电路设计中,验证工作已 ...

  8. bms用matlab吗,一种BMS的MATLAB建模集成方法与流程

    技术特征: 1.一种BMS的MATLAB建模集成方法,其特征在于,包括以下步骤: S01:将BMS分为输入模块.输出模块及若干个中间模块,并定义各模块的名称: S02:定义各模块的输入端口和输出端口的 ...

  9. 小优机器人系统恢复_一种机器人异常恢复系统及方法与流程

    本发明涉及异常恢复系统及方法,尤其涉及一种机器人异常恢复系统及方法. 背景技术: 目前,一些家庭拥有机器人,机器人对人类的生活有很大的影响,它给了人们更加智能化舒适化的享受:但是,当机器人在运行某些应 ...

最新文章

  1. 我妈今年 70 岁,受不了Windows蓝屏,用了 21 年的 Linux!YYDS!
  2. text-indent无效解决方案
  3. Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount
  4. mysql1756_MySQL Error_code: 1756
  5. WDK中出现的特殊代码
  6. 虚拟化精华问答 | 虚拟化技术分类
  7. Android系统(23)---Android 应用分屏
  8. The Dandy Lab使用RFID积分方案,提升客户保持率
  9. Debian - RAID5搭建(热备)
  10. 如何阻止事件冒泡和默认事件
  11. 编译原理 编译器自动生成工具
  12. 前端技术-HTML5与CSS
  13. MongoDB——客户端Robo 3T v1.4.3 安装
  14. mysqldump导出数据备份 --set-gtid-purged=OFF(简明!!)
  15. Android APP极限瘦身—— WebP 图片优化
  16. 计算机毕业设计springboot+vue基本微信小程序的考试系统
  17. [《回家寄事》闲笔记事集]2010年1月18日
  18. 用计算机运算符编写检索式,在计算机检索中,常用的布尔逻辑算符有哪几种
  19. 什么是Java股票交易接口?
  20. conda虚拟环境中 安装 jupyter notebook

热门文章

  1. opencv (二十七)模板匹配
  2. Trimble接收机T02格式转RINEX
  3. MySql 5.7.26版本免安装版配置过程及相关问题解决(win10版)
  4. 【调剂】兰州大学信息科学与工程学院2022年硕士研究生调剂需求公告
  5. Python + selenium 爬取淘宝网(销量,店铺名,价格等)
  6. 04 Java内存分析
  7. 【AE表达式】更好的动画时间控制
  8. 饺子播放器解决视频黑边
  9. Linux 曝出漏洞,各大发行版形同虚设:攻击者能获得系统全面的 root 权限
  10. 正版加密光盘如何复制?我来教给你方法 加密光盘问题解决