CN111552487B - H5跨引擎客户端本地数据代理方法、存储介质 - Google Patents
H5跨引擎客户端本地数据代理方法、存储介质 Download PDFInfo
- Publication number
- CN111552487B CN111552487B CN201910109572.6A CN201910109572A CN111552487B CN 111552487 B CN111552487 B CN 111552487B CN 201910109572 A CN201910109572 A CN 201910109572A CN 111552487 B CN111552487 B CN 111552487B
- Authority
- CN
- China
- Prior art keywords
- data
- change
- value
- key value
- processor
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的H5跨引擎客户端本地数据代理方法、存储介质,方法包括:创建数据模型,数据模型内置数据变更列表;写入待监听数据字段对应的key值至所述数据变更列表;对应所述数据变更列表中的每一个key值分别创建值变更处理器;当应用层通过数据模型监听到所述数据变更列表中一key值发生变更时,通过所述一key值对应的值变更处理器返回所述一key值及其对应的变更值value。不仅能实现客户端本地数据的监听和自动更新;而且不需要依靠手动派发数据变更监听;进一步的,还能大大降低数据更新以及数据维护的成本,同时具备广泛的通用性。
Description
技术领域
本发明涉及数据代理领域,具体涉及H5跨引擎客户端本地数据代理方法、存储介质。
背景技术
目前的H5应用开发中,具体如H5游戏开发,大多使用TypeScript、ActionScript或JavaScript语言进行项目开发。然而,TypeScript、ActionScript和JavaScript语言本身并没有提供类似数据代理的功能来动态支持数据更新。
由于对于H5应用这类跨引擎的客户端,目前仍无法实现客户端本地数据代理功能,需要手动派发数据变更监听。因此,便存在客户端本地数据变更监听的成本高,且无法实现客户端本地数据的动态更新的问题。
发明内容
本发明所要解决的技术问题是:提供H5跨引擎客户端本地数据代理方法、存储介质,能对客户端本地数据代理,实现客户端本地数据变更监听并自动更新。
为了解决上述技术问题,本发明采用的技术方案为:
H5跨引擎客户端本地数据代理方法,包括:
创建数据模型,数据模型内置数据变更列表;
写入待监听数据字段对应的key值至所述数据变更列表;
对应所述数据变更列表中的每一个key值分别创建值变更处理器;
当应用层通过数据模型监听到所述数据变更列表中一key值发生变更时,通过所述一key值对应的值变更处理器返回所述一key值及其对应的变更值value。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述H5跨引擎客户端本地数据代理方法所包含的步骤。
本发明的有益效果在于:本发明使用值变更处理器作为连接应用层与数据层的桥梁,通过封装有监听方法的值变更处理器实现客户端本地数据的监听和自动更新。本发明能实现客户端本地数据的自动更新且不再需要依靠手动派发数据变更监听,从而显著降低客户端本地数据变更监听成本;进一步的,还具有广泛的通用性。
附图说明
图1为本发明实施例一种H5跨引擎客户端本地数据代理方法的流程示意图;
图2为本发明实施例一至实施例三中一种客户端本地数据代理自动化更新实例的数据交互示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:使用值变更处理器作为连接应用层与数据层的桥梁,通过封装有监听方法的值变更处理器实现客户端本地数据的监听和自动更新。
本发明涉及的技术术语解释:
技术术语 | 解释 |
数据模型 | 需要进行数据代理的数据基类 |
数据变更列表 | 为某个key值的数据变更创建数据变更的监听处理器队列 |
值变更处理器 | 数据变更之后的执行器,执行变更后的操作 |
回调函数 | 数据变更之后执行的回调操作 |
作用域 | 数据变更之后执行回调操作时所指向的作用域 |
请参照图1以及图2,本发明提供H5跨引擎客户端本地数据代理方法,包括:
创建数据模型,数据模型内置数据变更列表;
写入待监听数据字段对应的key值至所述数据变更列表;
对应所述数据变更列表中的每一个key值分别创建值变更处理器;
当应用层通过数据模型监听到所述数据变更列表中一key值发生变更时,通过所述一key值对应的值变更处理器返回所述一key值及其对应的变更值value。
从上述描述可知,本发明的有益效果在于:本发明能实现客户端本地数据的自动更新且不再需要依靠手动派发数据变更监听,从而显著降低客户端本地数据变更监听成本;进一步的,还具有广泛的通用性。
进一步的,所述值变更处理器内置包括所述数据模型、对应的key值、数据变更监听回调函数和数据变更监听作用域;
所述通过所述一key值对应的值变更处理器返回所述一key值及其对应的变更值value,具体为:
应用层通过调用所述一key值对应的值变更处理器的数据变更监听回调函数,获取所述数据变更监听回调函数中返回的所述一key值对应的变更值value和所述数据模型。
由上述描述可知,在一具体实施方式中,值变更处理器利用回调函数来实现key值对应的变更值value的回调。
进一步的,所述对应所述数据变更列表中的每一个key值分别创建值变更处理器,之后,还包括:
将所创建的值变更处理器存入数据模型的值变更处理器列表中进行监听注册;
所述当应用层通过数据模型监听到所述数据变更列表中一key值发生变更时,之后,还包括:
从所述值变更处理器列表中获取所述一key值对应的值变更处理器;
将所述一key值对应的变更值value传递给所述对应的值变更处理器。
由上述描述可知,通过数据变更监听注册,实现对值变更处理器的监听;通过key值与变更值value之间映射关系来获取当前key值对应的最新变更值value,并将其传递给值变更处理器返回给应用层,实现变更数据的及时获取。
进一步的,还包括:
接收对应一数据字段的数据变更监听销毁指令;
依据所述指令销毁所述一数据字段对应的key值对应的值变更处理器。
由上述描述可知,还能实现灵活地对数据变更监听进行销毁,避免资源占用。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述H5跨引擎客户端本地数据代理方法所包含的步骤。
从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程,能够具备以下有益效果:使用值变更处理器作为连接应用层与数据层的桥梁,通过封装有监听方法的值变更处理器实现客户端本地数据的监听和自动更新。能实现客户端本地数据的自动更新且不再需要依靠手动派发数据变更监听,从而显著降低客户端本地数据变更监听成本;进一步的,还具有广泛的通用性。
实施例一
请参照图1和图2,本实施例提供一种H5跨引擎客户端本地数据代理方法,能对客户端本地数据代理,实现数据变更监听并更新到挂载数据,从而大大降低客户端本地数据变更监听的成本。
方法包括:
一、前期准备:
1、创建值变更器ValueHandler;
所创建的值变更器ValueHandler中内置包括:
变量:key值、数据模型model、数据变更监听回调函数与数据变更监听作用域;
(1)key值,作为数据监听字段(即待监听数据字段),关联数据模型、回调函数与作用域;
(2)数据模型,作为二级参数传递给回调函数使用;其中,一级参数和二级参数分别对应JavaScript中的第一个和第二个回调参数,一级参数为所监听的key对应的value最新值,二级参数为整个数据模型,一级参数是二级参数的子数据;
(3)数据变更监听回调函数与数据变更监听作用域,作为key变更的回调与作用域使用,同时传递一级参数value(key最新的值)与二级参数数据模型;
方法:执行方法run,参数value(key值对应的变更值),执行回调函数,并将value和model返回给回调函数;
2、创建数据模型Model,即上述值变更器ValueHandler中的数据模型;
数据模型Model交付给值变更处理器ValueHandler中的数据模型代理,内置包括:
参数:值变更处理器列表(为每一个在数据变更列表中的数据初始化值变更处理器列表)、数据变更列表(数组存放并返回需要监听的数据字段)、数据变更监听注册、数据变更监听销毁、数据变更派发;
方法:
(1)数据变更列表:在数据模型Model中写入需要监听的数据字段的key值(string),即为key值初始化,创建值变更器的空列表;
(2)数据变更监听注册:通过传递参数key值、监听的回调函数、监听的作用域至应用层注册,即可创建一个值变更处理器ValueHandler,并将其存入该key值的注册列表(即已经完成注册的值变更器列表)中进行监听管理;
(3)数据变更派发,通过传递参数:key值(监听字段)、value变更值,从注册列表中找到对应该key值的值变更器ValueHandler,通过调用里面的回调函数,将参数value带给值变更器ValueHandler中的run方法并执行,在监听的应用层返回最新的数据变更,即调用该key值的值变更器ValueHandler,将value作为一级参数,数据模型作为二级参数传递到监听的回调中;
(4)数据变更监听销毁,需要传递参数:作用域和回调函数,销毁该数据变更监听,具体通过销毁之前注册的值变更器列表中移除该监听来实现。
二、跨引擎客户端本地数据代理过程:
S1:创建数据模型,数据模型内置数据变更列表;
S2:写入待监听数据字段对应的key值至所述数据变更列表;
S3:对应所述数据变更列表中的每一个key值分别创建值变更处理器;
S4:将所创建的值变更处理器存入数据模型的值变更处理器注册列表中进行监听注册;
上述步骤均通过上述一、前期准备实现。
S4:应用层通过数据模型监听所述数据变更列表中key值的变化;
S5:当监听到其中一key值发生变更时,从所述值变更处理器列表中获取所述一key值对应的值变更处理器;
S6:将所述一key值对应的变更值value传递给该key值对应的值变更处理器;
S7:通过该key值对应的值变更处理器返回所述一key值及其对应的变更值value,该变更值value即为最新的变更数据。
在一具体实施方式中,上述步骤S7的实现过程包括:应用层通过调用所述一key值对应的值变更处理器的数据变更监听回调函数,获取该数据变更监听回调函数中返回的所述一key值对应的变更值value和所述数据模型。
本实施例通过使用值变更器ValueHandler,作为连接应用层与数据层的桥梁,实现数据的自动化更新驱动,由管理器值变更器将更新的数据在应用层上实现输出,且值变更器ValueHandler具有广泛的通用性,可以实现数据代理与自动化更新操作,不用再在应用层使用各种繁琐的管理类实现数据维护。因此,本实施例实现了客户端本地数据变更监听,监听成本低,且无需手动派发数据变更监听;同时更易于数据维护。
实施例二
本实施例在实施例一的基础上,做进一步扩展,还能实现灵活地销毁特定数据字段的变更监听。具体的,实施例一的方法还包括:
S8:接收用户在客户端触发的对应一数据字段的数据变更监听销毁指令;
S9:依据所述指令销毁值变更器列表中所述一数据字段对应的key值对应的值变更处理器。
实施例三
本实施例对应实施例一或实施例二,对图2提供的客户端本地数据代理自动化更新实例的数据交互过程做进一步的限定。
其中,(1)setCallback:数据变更的监听回调函数与监听作用域,第一个参数为数据变更监听的回调函数,第二个参数为数据变更监听的回调函数;
(2)run:执行数据变更的回调通知,第一个参数为变更值value;
(3)model.onValueChanged:应用层调用model中的监听数据变更并自动更新到应用层的方法,第一个参数为需要监听的数据字段key值,第二个参数为监听到数据变更之后的回调函数,在该回调函数中携带两个数据(第一个为ValueHandler携带的一级参数变更值,第二个为ValueHandler携带的二级参数数据模型),第三个参数为执行该回调函数的作用域;
(4)onValueChanged:model中创建数据变更监听,在应用层提供使用(如上述“run”的说明);
(5)registerValueChangeHandler:model中注册key值列表,为每一个key值创建一个ValueHandler列表,以管理不同的数据监听回调与不同作用域监听该key值变化的处理器;
(6)unregisterValueChangeHandler:销毁指定数据变更监听回调函数与数据变更监听作用域的处理器,第一个参数为数据变更监听回调函数,第二个参数为数据变更监听作用域;
(7)valueChanged:数据变更派发,第一个参数为监听变更的key值,第二个参数为该key值的变更值。
实施例四
本实施例对应实施例一至实施例三,提供一具体运用场景:
当游戏客户端本地需要监听某个角色状态变更后并做相关的处理,其监听并自动更新过程包括:
为角色构建model存储数据,增加state的状态字段,作为待监听数据字段;提供state的set接口作为监听入口,并在set下设置数据变更派发valueChanged(‘state’,value),在需要监听变更的应用类B上注册数据监听model.onValueChanged(‘state’,this,this.onStateChanged);此时当角色在应用类A变更状态调用model中的set之时,即可启动valueChanged下的run,自动执行应用类B的onStateChanged回调,并将最新的数据派发过来。
实施例五
本实施例对应上述实施例一至实施例四,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述实施例一至实施例四任意一项所述的跨引擎客户端本地数据代理方法所包含的步骤。具体的步骤内容在此不进行复述,详情请参阅上述实施例一或实施例二或实施例三或实施例四的记载。
对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本发明提供的H5跨引擎客户端本地数据代理方法、存储介质,不仅能实现客户端本地数据的监听和自动更新;而且不需要依靠手动派发数据变更监听,大大降低数据更新以及数据维护的成本,同时具备广泛的通用性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.H5跨引擎客户端本地数据代理方法,其特征在于,包括:
创建数据模型,数据模型内置数据变更列表;
写入待监听数据字段对应的key值至所述数据变更列表;
对应所述数据变更列表中的每一个key值分别创建值变更处理器;
当应用层通过数据模型监听到所述数据变更列表中一key值发生变更时,通过所述一key值对应的值变更处理器返回所述一key值及其对应的变更值value;
所述值变更处理器为数据变更之后的执行器,用于执行数据变更之后的操作。
2.如权利要求1所述的H5跨引擎客户端本地数据代理方法,其特征在于,所述值变更处理器内置包括所述数据模型、对应的key值、数据变更监听回调函数和数据变更监听作用域;
所述通过所述一key值对应的值变更处理器返回所述一key值及其对应的变更值value,具体为:
应用层通过调用所述一key值对应的值变更处理器的数据变更监听回调函数,获取所述数据变更监听回调函数中返回的所述一key值对应的变更值value和所述数据模型。
3.如权利要求1所述的H5跨引擎客户端本地数据代理方法,其特征在于,所述对应所述数据变更列表中的每一个key值分别创建值变更处理器,之后,还包括:
将所创建的值变更处理器存入数据模型的值变更处理器列表中进行监听注册;
所述当应用层通过数据模型监听到所述数据变更列表中一key值发生变更时,之后,还包括:
从所述值变更处理器列表中获取所述一key值对应的值变更处理器;
将所述一key值对应的变更值value传递给所述对应的值变更处理器。
4.如权利要求1所述的H5跨引擎客户端本地数据代理方法,其特征在于,还包括:
接收对应一数据字段的数据变更监听销毁指令;
依据所述指令销毁所述一数据字段对应的key值对应的值变更处理器。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能实现上述权利要求1-4任意一项所述的H5跨引擎客户端本地数据代理方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910109572.6A CN111552487B (zh) | 2019-02-11 | 2019-02-11 | H5跨引擎客户端本地数据代理方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910109572.6A CN111552487B (zh) | 2019-02-11 | 2019-02-11 | H5跨引擎客户端本地数据代理方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552487A CN111552487A (zh) | 2020-08-18 |
CN111552487B true CN111552487B (zh) | 2022-07-05 |
Family
ID=72003685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910109572.6A Active CN111552487B (zh) | 2019-02-11 | 2019-02-11 | H5跨引擎客户端本地数据代理方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552487B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262674A (zh) * | 2011-08-11 | 2011-11-30 | 大唐移动通信设备有限公司 | 一种分布式内存数据库的数据同步方法及系统 |
CN102446226A (zh) * | 2012-01-16 | 2012-05-09 | 上海方正数字出版技术有限公司 | 一种实现NoSQL的键值存储引擎的方法 |
CN105528424A (zh) * | 2015-12-07 | 2016-04-27 | 普元信息技术股份有限公司 | 大数据环境下实现数据持久化的系统及方法 |
US9891906B1 (en) * | 2014-12-31 | 2018-02-13 | Wells Fargo Bank, N.A. | Software versioning |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN109241482A (zh) * | 2018-08-28 | 2019-01-18 | 优视科技新加坡有限公司 | 确定变更事件发布成功的方法及其装置 |
-
2019
- 2019-02-11 CN CN201910109572.6A patent/CN111552487B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262674A (zh) * | 2011-08-11 | 2011-11-30 | 大唐移动通信设备有限公司 | 一种分布式内存数据库的数据同步方法及系统 |
CN102446226A (zh) * | 2012-01-16 | 2012-05-09 | 上海方正数字出版技术有限公司 | 一种实现NoSQL的键值存储引擎的方法 |
US9891906B1 (en) * | 2014-12-31 | 2018-02-13 | Wells Fargo Bank, N.A. | Software versioning |
CN105528424A (zh) * | 2015-12-07 | 2016-04-27 | 普元信息技术股份有限公司 | 大数据环境下实现数据持久化的系统及方法 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN109241482A (zh) * | 2018-08-28 | 2019-01-18 | 优视科技新加坡有限公司 | 确定变更事件发布成功的方法及其装置 |
Non-Patent Citations (1)
Title |
---|
《面向分布式环境的数据交互与存取模型研究》;陈广伟;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20141013;I137-59 * |
Also Published As
Publication number | Publication date |
---|---|
CN111552487A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10311077B2 (en) | Database table conversion | |
CN108304271B (zh) | 一种微服务架构下的分布式事务管理器以及管理方法 | |
US7028303B2 (en) | Method, system, and program for processing a job in an event driven workflow environment | |
US20050044554A1 (en) | Object connectivity through loosely coupled publish and subscribe events | |
CN109933585B (zh) | 数据查询方法和数据查询系统 | |
US20060206583A1 (en) | Framework for managing client application data in offline and online environments | |
US20120197959A1 (en) | Processing pattern framework for dispatching and executing tasks in a distributed computing grid | |
US11050840B2 (en) | System and method for utilizing a distributed in-memory data grid to implement typed buffer caching services for a transactional processing environment | |
US20030115379A1 (en) | Method, system, and program for implementing a remote method call | |
US20070124740A1 (en) | Systems and methods for adapting procedure calls to service providers | |
CN103632219A (zh) | 用于重新分配用于检查数据质量的作业的方法和系统 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN112363775B (zh) | 动态修改微服务配置信息的方法及系统、存储介质 | |
JP2002532777A (ja) | オブジェクト指向リアルタイム・プロセス制御システムのためのタイムアウト・オブジェクト、およびその操作の方法 | |
CN111552901B (zh) | H5跨引擎客户端数据自动化更新的方法、存储介质 | |
US20200174804A1 (en) | Graphical User Interface Command Pattern | |
CN111552487B (zh) | H5跨引擎客户端本地数据代理方法、存储介质 | |
US9027026B2 (en) | Managing transactions within an application server | |
US9842011B2 (en) | Delegating a status visualization task to a source application by a target application | |
US20070271210A1 (en) | Provision of persistence context to program components | |
CN112817992A (zh) | 执行更改任务的方法、装置、电子设备以及可读存储介质 | |
US20230134573A1 (en) | Automated generation of dependency hierarchy based on input and output requirements of information | |
CN115225482B (zh) | 一种基于Kubernetes进行Pod容器网络配置的方法及装置 | |
CN115361382A (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN113726902A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |