一种卡片数据的更新方法和装置与流程

文档序号:16918714发布日期:2019-02-19 19:10阅读:286来源:国知局
一种卡片数据的更新方法和装置与流程

本说明书涉及互联网技术领域,尤其涉及一种卡片数据的更新方法和装置。



背景技术:

移动客户端中,存在很多界面或场景,其中部分界面或场景是由多个卡片的形式组成的。举例说明,在支付宝的财富tab页面,不同位置会展示不同的信息,如总资产、理财服务和理财产品等,将这些展示不同信息的位置称为不同卡片。

现有技术中,通常依靠客户端定时触发rpc接口,进而从服务器获取数据,全量刷新所有卡片,而现有技术客户端定时发起rpc请求的问题是,可能需要快速让用户看到某些卡片数据的最新变化,而客户端无法及时获取该数据。



技术实现要素:

针对上述技术问题,本说明书实施例提供一种卡片数据的更新方法和装置,技术方案如下:

根据本说明书实施例的第一方面,提供一种卡片数据的更新方法,该方法包括:

客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括更新类型字段,所述更新类型字段包含卡片布局更新规则和/或卡片内部数据更新规则。

根据本说明书实施例的第二方面,提供一种卡片数据的更新装置,该装置包括:

数据接收模块:用于使客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

卡片更新模块:用于使客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括更新类型字段,所述更新类型字段包含卡片布局更新规则和/或卡片内部数据更新规则。

根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现一种卡片数据的更新方法,该方法包括

客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括更新类型字段,所述更新类型字段包含卡片布局更新规则和/或卡片内部数据更新规则。

本说明书实施例所提供的技术方案,提供了一种卡片数据的更新方法和装置,除了客户端向服务器发起rpc请求以刷新全量卡片数据外,还在服务端预置了主动向客户端推送卡片数据的触发逻辑,利用通用的sync功能,按照预设的协议对需要进行更新的卡片推送增量数据,从而使用户尽快看到最新的数据,提升用户体验。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。

此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是本说明书一示例性实施例示出的卡片数据的更新方法的一种流程图;

图2是本说明书一示例性实施例示出的卡片数据的更新方法的另一种流程图;

图3是本说明书一示例性实施例示出的卡片数据的更新装置的一种示意图;

图4是本说明书一示例性实施例示出的一种计算机设备的结构示意图。

具体实施方式

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

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

移动客户端中,存在很多界面或场景,其中部分界面或场景是由多个卡片的形式组成的。举例说明,在支付宝的财富tab页面,不同位置会展示不同的信息,如总资产、理财服务和理财产品等,将这些展示不同信息的位置称为不同卡片。

现有技术中,通常依靠客户端定时触发rpc接口,进而从服务器获取数据,全量刷新所有卡片,而现有技术客户端定时发起rpc请求的问题是,可能需要快速让用户看到某些卡片数据的最新变化,而客户端无法及时获取该数据。

针对以上问题,本说明书实施例提供一种卡片数据的更新方法,以及一种用于执行该方法的卡片数据的更新装置。下面对本实施例涉及的卡片数据的更新方法进行详细说明,参见图1所示,该方法可以包括以下步骤:

s101,客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

客户端接收服务器根据预存的推送逻辑推送的卡片数据后,还需要获取卡片数据中包含的用户标识,与本地用户标识进行对比,如果两者不同,则停止卡片数据的更新流程。

s102,客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括更新类型字段,所述更新类型字段包含卡片布局更新规则和/或卡片内部数据更新规则。

在本说明书的一种实施方式中,sync协议可包含如下字段:

1)subbiz,更新类型字段,根据该字段区分卡片布局的修改或卡片内部数据的修改;

具体地,当更新类型subbiz字段为"crud_card"时,表示本次修改为卡片布局修改,即在卡片级别上对客户端的不同卡片进行增加,删除,修改操作。

具体地,当更新类型subbiz字段为"crud_json_result”时,表示本次修改为卡片内部数据修改,即通过预先约定的jsonpatch指令对卡片内部元素进行修改。

2)timestamp,时间记录字段,用于记录当前的服务器时间,举例说明,该字段可为"1509502232000"。

3)actionmodel,卡片更新模式字段,用于记录卡片更新模式;

进一步地,actionmodel字段下还可包括type字段,actionmodel.type字段用于确定本次卡片更新为服务器向客户端推送数据或客户端从服务器请求数据;

具体地,当actionmodel.type字段为“command”时,表示更新模式为命令模式,即命令客户端对服务端发起rpc数据请求,根据rpc数据请求中包含的内容从服务器获取对应的卡片数据。

具体地,当actionmodel.type字段为“data”时,表示更新模式为数据模式,即由服务器直接向客户端下发卡片数据。

进一步地,actionmodel字段下还可包括action字段;

action字段用于确定应对卡片进行增加,删除或修改操作;具体地,当该字段为add时,为新增卡片;当该字段为update时,为更新卡片;当该字段为delete时,为删除卡片。

进一步地,actionmodel字段下还可包括commandtype字段;

当处于command命令模式下,客户端对服务端发起rpc数据请求时,使用commandtype字段指定rpc请求的相关规则,具体地,其可包括以下字段:

rule,用于更新楼层信息和卡片信息。

data,用于更新指定卡片的数据。

进一步地,actionmodel字段下还可包括actionmodel.index,表示要增加的卡片位置;

进一步地,actionmodel字段下还可包括actionmodel.cardtypeids,表示要操作的卡片列表,用于删除卡片;

4)cardmodel,用于记录要修改的卡片数据sync表,用于增加、更新卡片;

5)jsonpatch,jsonpatch字段,用于通过预先约定的json指令直接修改卡片数据。

举例说明sync协议的具体结构,如下:

{

"subbiz":"crud_card/crud_json_result",

"timestamp":"1509502232000",

"cardmodel":[{}],

"actionmodel":

{"type":"command/data",

"action":"add/delete/update",

"commandtype":"data/rule",

"index":0,

"cardtypeids":["xxx_card"],},

“jsonpatch”:{}}

本说明书实施例还提供一种更为具体的卡片数据的更新方法,参见图2所示,该方法可以包括以下步骤:

s201,接收卡片数据;

s202,遍历卡片数据;

s203,遍历是否结束?如果遍历结束,执行步骤s209,如果遍历没有结束,执行步骤s204;

s204,更新类型为增删改卡片数据?如果更新类型为增删改卡片数据,执行步骤s205,更新类型不为增删改卡片数据,执行步骤s206;

参考上文所述sync协议字段,当数据的subbiz字段为"crud_card”时,可判定该数据为增删改卡片数据。

s205,记录到增删改sync表;

s206,更新类型为修改卡片内部数据?如果更新类型为修改卡片内部数据,执行步骤s207,更新类型不为修改卡片内部数据,执行步骤s208;

参考上文所述sync协议字段,当数据的subbiz字段为"crud_json_result”时,可判定该数据为修改卡片内部数据。

s207,记录到内部数据修改sync表;

s208,记录到第三方业务数据sync表;

s209,处理增删改sync表;

具体地,需遍历卡片增删改的sync命令sync表,确定sync表数据中包含的更新模式字段;

参考上文所述sync协议字段,若该更新模式字段actionmodel.type为command时,触发客户端的rpc请求;

若该更新模式字段actionmodel.type为data时,直接根据sync数据对卡片进行增加、删除和修改。

s210,处理内部数据修改sync表;

具体地,需要约定卡片的数据部分是json字符串,同时约定一套jsonpatch协议。当客户端收到jsonpatch的sync命令时,可直接执行jsonpatch指令来修改卡片数据。

在本说明书的一种实施方式中,jsonpatch协议可包含如下字段:

1.op:指令类型:表示对卡片数据进行增加、删除或修改操作,即:add/remove/replace;

2.path:路径:表示自根路径开始查找待操作的元素位置的方式,即按下划线分割,每一层表示key或者index或者query条件。

3.value:表示add/replace时要用到的具体元素。

具体地,操作指令类型如下:

1.add增加;

1.1jsonobject:

举例:{op:add,path:"/a/b/c",value:xxx},表示在/a/b路径下增加字段时,key为c,值为value。如果key已经存在,用新值覆盖。

1.2jsonarray:

举例:{op:add,path:"/a/b/3",value:xxx},在索引index为3处增加一个元素。如果找不到这个index,不操作。

1.3jsonarray:

举例:query条件为key1=x&key2=y时,{op:add,path:"/a/b/?key1=x&key2=y",value:xxx}。在第一个满足query条件的index位置增加一个元素。如果根据query条件查找不到,则不添加。

2.remove删除;

2.1jsonobject:

举例:{op:remove,path:"/a/b/c"},在/a/b路径下,删除key为c的元素。

2.2jsonarray:

举例:{op:remove,path:"/a/b/3"},在/a/b路径下,删除index为3的元素。如果找不到这个index,不操作。

2.3jsonarray删除满足query条件的元素

举例:{op:remove,path:"/a/b/?key1=x&key2=y"};在/a/b路径下,删除key1为x且key2为y的元素。如果找不到满足query条件的元素,不操作。

3.replace更新;

3.1jsonobject

举例:{op:replace,path:"/a/b/c",value:xxx},将key为c的字段的值更新为value。

3.2jsonarray

举例:{op:replace,path:"/a/b/3",value:xxx},在索引index为3处更新元素。如果找不到这个index,不操作。

3.3jsonarray在满足query条件的index位置更新元素。如果根据query条件查找不到,不更新。

举例:当下发query条件为key1=x&key2=y,jsonpatch为{op:replace,path:"/a/b/?key1=x&key2=y",value:xxx}的指令时,对应的sync数据如下:

其中,jsonpatch指令按照上文所述协议格式进行下发,且对于每张卡片,均可执行多个jsonpatch指令。

s211,使用对应的第三方模块处理第三方业务数据sync表。

其中,增删改sync表和内部数据修改sync表可使用通用模块进行处理,第三方业务数据sync表因为涉及第三方,需要使用对应的第三方模块进行,一般情况下,可直接通知对应的第三方处理该sync表中的数据。

相应于上述方法实施例,本说明书实施例还提供一种卡片数据的更新装置,参见图3所示,所述装置可以包括:数据接收模块310,卡片更新模块320。

数据接收模块310:用于使客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

卡片更新模块320:用于使客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括更新类型字段,所述更新类型字段包含卡片布局更新规则和/或卡片内部数据更新规则。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述卡片数据的更新方法,所述方法至少包括:

客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括卡片布局更新规则和/或卡片内部数据更新规则。

图4示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的卡片数据的更新方法,所述方法至少包括:

客户端接收服务器根据预存的推送逻辑推送的卡片数据,所述预存的推送逻辑包括多种卡片数据的推送触发条件;

客户端遍历所述卡片数据,根据卡片数据中包含的规则字段进行卡片的本地更新;

其中,客户端与服务器之间推送卡片数据时遵从预先约定的sync协议,所述sync协议中至少包括卡片布局更新规则和/或卡片内部数据更新规则。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

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