数据上报方法和装置与流程

文档序号:16246144发布日期:2018-12-11 23:36阅读:270来源:国知局
数据上报方法和装置与流程

本发明涉及互联网技术领域,特别是涉及一种数据上报方法和装置。

背景技术

在大型网站应用中,通常需要统计用户在网页上的操作行为,通过对用户在网页上的操作形为进行分析,能够对产品功能的优化和发展起到指导作用。用户在网页上的操作行为包括浏览页面、点击按钮、跳转页面等等,客户端将这些行为以数据的方式上报到指定服务器,由指定服务器获取并分析用户的操作行为。

传统的数据上报方法是采用图片地址上报,具体地,通过脚本语言新建一个图片添加到页面中,图片的地址是要上报的服务器的地址和参数。通过图片地址上报的优点是可以简单地支持跨域上报(网页域名和上报服务器的域名不是同一个)。但这种数据上报方式无法获知上报是否成功。

然而,如果要做到数据的可靠上报,获知每次上报的是必要的,采用传统的数据上报方法无法获知数据是否上报成功,可靠性低。



技术实现要素:

基于此,有必要数据上报可靠性低的问题,提供一种数据上报方法和装置。

为达到上述目的,一个实施例采用以下技术方案:

一种数据上报方法,包括:

获取对页面的操作指令,并根据所述操作指令产生上报数据;

基于跨域数据交互协议向所述页面对应的服务器发送所述上报数据;

接收所述服务器返回的所述上报数据的上报结果。

一种数据上报装置,包括:获取模块、发送模块和接收模块;

所述获取模块,用于获取对页面的操作指令,并根据所述操作指令产生上报数据;

所述发送模块,用于基于跨域数据交互协议向所述页面对应的服务器发送所述上报数据;

所述接收模块,用于接收所述服务器返回的所述上报数据的上报结果。

上述的数据上报方法和装置,在用户访问页面时,根据对页面的操作指令产生上报数据,并基于跨域数据交互协议向服务器发送上报数据,接收服务器返回的上报数据的上报结果。由于能够获知数据的上报结果,从而基于上报结果,为在上报失败时提供了重新上报的可能,因此,该数据上报方法和装置的可靠性高。

附图说明

图1为一个实施例的数据上报方法和装置的应用环境示意图;

图2为一个实施例的终端的内部结构示意图;

图3为一个实施例的数据上报方法的流程图;

图4为另一个实施例的数据上报方法的流程图;

图5为与图4的数据上报方法对应的系统架构图;

图6为再一个实施例的数据上报方法的流程图;

图7为又一个实施例的数据上报方法的流程图;

图8为一个实施例的终端和服务器实现数据上报方法的交互示意图;

图9为另一个实施例的终端和服务器实现数据上报方法的交互示意图;

图10为一个实施例的数据上报装置的结构框图;

图11为另一个实施例的数据上报装置的结构框图;

图12为又一个实施例的数据上报装置的结构框图;

图13为再一个实施例的数据上报装置的结构框图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

本发明提供一种数据上报方法,用户通过终端访问页面时,终端获取对页面的操作指令,并根据操作指令产生上报数据,基于跨域数据交互协议向页面对应的服务器发送上报数据,接收服务器返回的上报数据的上报结果。由于能够获知数据的上报结果,从而基于上报结果,为在上报失败时提供了重新上报的可能,因此,该数据上报方法和装置的可靠性高。

图1为一个实施例提供的数据上报方法和装置的应用环境示意图。如图1所示,该应用环境包括终端101和服务器103,终端101与服务器103通过网络进行通信。用户通过终端101进行操作以访问页面,终端101将获取的上报数据通过网络上传至服务器。终端101可以为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。

图2为一个实施例中的终端的内部结构示意图。如图1所示,终端包括通过系统总线连接的处理器、存储介质、内存、网络接口、显示屏和输入设备。其中,该处理器用于提供计算和控制能力,支撑整个终端的运行。终端的存储介质存储有操作系统以及一种数据上报装置的计算机程序,该数据上报装置的计算机程序被处理器执行时,用于实现一种数据上报方法。终端中的内存为存储介质中的数据上报装置的运行提供环境,网络接口用于与服务器通信,例如,将上报数据发送至服务器。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入设备可以是显示屏上覆盖的触摸层,也可以是外接的键盘、触控板或鼠标等,用户通过操作输入设备访问页面。本领域技术人员可以理解,图1中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图3为一个实施例的数据上报方法的流程图,该方法运行在图1所示的终端101中,包括以下步骤:

s302:获取对页面的操作指令,并根据操作指令产生上报数据。

操作指令是指用户通过终端访问页面,在对应的页面上对终端进行操作所产生的指令,操作包括访问操作、触摸操作和点击操作等。终端可以为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。上报数据为用户形为操作数据,根据操作指令生成。

s304:基于跨域数据交互协议向页面对应的服务器发送上报数据。

本实施例中的跨域数据交互协议可采用jsonp(jsonwithpadding),是json(javascriptobjectnotation,js对象标记)的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。通过跨域数据交互协议向服务器发送数据时,允许终端传递一个callback参数给服务器,服务器返回数据时会将这个callback参数作为函数名来包裹住json(javascriptobjectnotation,js对象标记)数据,客户端就可以随意定制自己的函数自动处理返回数据。

s306:接收服务器返回的上报数据的上报结果。

终端与服务器之间通过跨域数据交互协议的形式传递上报数据和上报结果,上报结果包括上报成功或上报失败。当接收到的上报结果为上报成功时,表明上报数据上报成功。上报结果返回失败,表明上报数据上报失败。上报结果即服务器返回的callback参数作为函数名来包裹住表示上报结果的json(javascriptobjectnotation,js对象标记)数据。

上述的数据上报方法,在用户访问页面时,根据对页面的操作指令产生上报数据,并基于跨域数据交互协议向服务器发送上报数据,接收服务器返回的上报数据的上报结果。由于能够获知数据的上报结果,从而基于上报结果,为在上报失败时提供了重新上报的可能,因此,该数据上报方法和装置的可靠性高。

图4为另一个实施例的数据上报方法的流程图,图5为与图4的数据上报方法对应的系统架构图。如图4和图5所示,该方法包括以下步骤:

s402:获取对页面的操作指令,并根据操作指令产生上报数据。

操作指令是指用户通过终端访问页面,在对应的页面上对终端进行操作所产生的指令,操作包括访问操作、触摸操作和点击操作等。终端可以为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。上报数据为用户形为操作数据,根据操作指令生成。

s404:生成上报数据的数据标识。

数据标识是每一条上报数据的唯一识别标识,用于区别每一条上报数据。为了保证数据标识的唯一性,采用时间戳加随机数来生成。例如,数据标识=当前时间戳毫秒+17位随机数。随机数可采用随机数生成器生成。

s406:基于跨域数据交互协议向页面对应的服务器发送上报数据。

发送的上报数据携带数据标识。本实施例中的跨域数据交互协议可采用jsonp(jsonwithpadding),是json的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。通过跨域数据交互协议向服务器发送数据时,允许终端传递一个callback参数给服务器,服务器返回数据时会将这个callback参数作为函数名来包裹住json(javascriptobjectnotation,js对象标记)数据,客户端就可以随意定制自己的函数自动处理返回数据。

s408:根据数据标识将上报数据存储在本地。

本地存储(localstorage),即网站用于持久化的本地存储。根据数据标识将上报数据存储在本地是指建立数据标识与上报数据的对应关系。可以理解的是,步骤s406与步骤s408为并行步骤,无先后顺序之分。终端在访问页面时,将本地存储作为上报数据的缓存区,以保障数据上报即使失败了,在缓存区中也能找到备份。

s410:接收服务器返回的上报数据的上报结果。

上报结果携带数据标识。上报结果即服务器返回的callback参数作为函数名来包裹住表示上报结果的json(javascriptobjectnotation,js对象标记)数据。上报结果包括上报成功或上报失败。

s412:判断接收到的上报结果是否包括上报失败消息。若是,则执行步骤s414。

s414:根据上报结果携带的数据标识,获取存储在本地的对应的上报数据并返回基于跨域数据交互协议向页面对应的服务器发送上报数据的步骤,直至数据上报成功。

进一步的,步骤s412的判断结果为否时,执行步骤s413:删除存储在本地与数据标识对应的上报数据。

上述的数据上报方法,基于跨域数据交互协议向页面对应的服务器发送上报数据,还将上报数据存储在本地,当接收到的上报结果包括上报失败信息时,根据上报结果携带的数据标识,获取存储在本地的对应的上报数据,重新进行上报,减少由于页面跳转等因素造成的上报数据丢失,提高了数据上报的可靠性,并且在上报成功时删除存储在本地的上报数据。由于只有在上报结果为上报成功时,才会清除本地存储中对应的上报数据,进一步地提高了数据上报的可靠性。

具体地,步骤s408包括:存储上报数据,并为存储的上报数据生成存储标识;建立存储标识与数据标识的对应关系。

存储标识是每一条上报数据在本地的唯一识别标识,用于区别存储在本地的上报数据对应哪一条发送的上报数据。为区别存储标识和数据标识,可以数据标识前加上统一的前缀得到存储标识。存储标识与数据标识对应。

对应地,步骤s413包括:根据对应关系查找与上报结果携带的数据标识对应的存储标识;删除存储在本地与存储标识对应的上报数据。

本实施例中,通过存储标识和数据标识的对应关系,在本地存储中查找对应的数据。

在再一个实施例中,为确保上报数据成功上报,终端在每次打开页面时,还将检测本地存储中是否有残余的上报数据。并且在检测到有残余的上报数据时,找到对应的数据并进行上报,只有在上报成功时,才会清除本地存储的上报数据。具体地,如图6所示,包括以下步骤:

s602:获取页面访问指令,加载对应的页面内容并显示。

s604:根据页面对应的域名检测本地是否存储有与域名关联的上报数据。若是,则执行步骤s606。

一个域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,ftp等)。域名作为力所能及难忘的互联网参与者的名称,如电脑、网络和服务。上报数据在本地存储中缓存时,将存储的上报数据与域名关联。具体地,以域名为单位进行存储,即相同域名的页面的上报数据的存储地址相同。例如,以域名为文件夹,将相同域名的页面的上报数据存储在以该域名命名的文件夹内。

当获取页面的访问指令时,打开对应的页面,检测本地存储中是否存储有与页面的域名关联的上报数据。由于在接收到上报成功的上报结果时,终端删除存储在本地的上报数据,因此,当在打开页面时,检测本地存储中存储有与页面的域名关联的上报数据时,表明有残余的上报数据。

s606:基于跨域数据交互协议向页面对应的服务器发送检测到的上报数据。

当检测到参与的上报数据时,基于跨域数据交互协议向页面对应的服务器发送检测到的上报数据。

可以理解的是,在步骤s606之后,还接收服务器返回的上报数据的上报结果,在接收到的上报结果包括上报失败信息时,继续进行上报,在接收到的上报结果包括上报成功信息时,删除本地对应的上报数据。

上述的数据上报方法,在每次打开页时时,执行数据上报的初始化逻辑,查看本地中是否有残余的上报数据,如果有,则将上报数据重新进行上报到,只有当上报成功时,才会清除缓存中的上报数据。

在另一个实施例中,大多数站点使用单域名就可以满足。但有些较大的网站,通过多域名来划分不同业务。这时,通过域名关联上报数据会存在一定问题。例如,用户在a域名的页面中,点击了一个链接,跳转到了b域名的页面。因为a与b是不同域名,两个页面的上报数据无法与同一个域名关联。则在a域名页面中的上报失败的数据,在b域名页面中无法及时重新上报。在这种情况下只有用户再次访问a域名下的页面时,a域名页面中的上报失败的数据才会重新进行上报。

为了解决本地存储不同域名下的上报数据不能通用的问题,本方案引入了iframe(嵌入式框架)代理来实现。

具体地,如图7所示,在步骤s402之前,还包括步骤s401:当调用代理页面从父页面跳转到子页面时,获取父页面与子页面的对应关系以及父页面的上报数据在本地的存储地址。

具体地,在子域页面上(即第二网页页面上)创建一个框架iframe,为该框架指定一个目标地址,然后,使用html5apipostmessage(一种在html5中解决跨域通信的模块)使用父子页面跨域进行通信。进行跨域通信的模块为现有的实现方式,在本申请实施例中,通过创建iframe,使用代理页来利用该跨域通信模块。

当调用代理页面从父页面跳转到子页面时,获取父页面与子页面的对应关系以及父页面的上报数据在本地的存储地址。

步骤s408包括:根据获取的存储地址将子页面的上报数据存储在本地。

具体地,通过获取父页面的存储地址,将子页面的上报数据存储在该地址下,从而父页面和子页面的上报数据与父页面的存储地址关联。当用户访问父面页面时,也能够及时地上报子页面中的上报失败的数据,无需重新访问子页面。

上述的数据上报方法,在某些场景下会重复上报同一条数据,例如页面跳转时,上报的jsonp请求已经完整发送出去,上报服务器成功接收到数据,但是上报结果返回时上一页面已经跳转至其它页面,无法执行删除缓存的逻辑,导致本次上报成功的数据在下一个页面中会重复上报上报一次。因此,在服务器接收到上报数据后,对上报数据进行统计,需要根据上报数据的数据标识进行去重,去重后得到的上报数据才是精确的结果。

下面结合具体的实施对本发明的数据上报方法进行说明。

如图8所示,终端根据用户的操作行为,产生上报数据。终端为上报数据添加seq_number,为数据生成数据标识。终端将上报数据根据数据标识缓存在本地,并将上报数据发送至服务器,服务器返回上报结果至终端。终端与服务器基于跨域数据交互协议传递上报数据和上报结果。当终端接收到上报成功的结果时,根据上报结果携带的数据标识在本地缓存中查找上报数据并删除。由于只有在上报结果为上报成功时,才会清除本地存储中对应的上报数据,进一步地提高了数据上报的可靠性

如图9所示,当终端获取对页面的访问指令时,加载对应的页面内容并显示。在终端打开页面时,检测本地存储中是否存储有与页面的域名关联的上报数据。由于在接收到上报成功的上报结果时,终端删除存储在本地的上报数据,因此,当在打开页面时,检测本地存储中存储有与页面的域名关联的上报数据时,表明有残余的上报数据。终端读取对应的上报数据,并将上报数据发送至服务器,服务器返回上报结果至终端。终端与服务器基于跨域数据交互协议传递上报数据和上报结果。当终端接收到上报成功的结果时,根据上报结果携带的数据标识在本地缓存中查找上报数据并删除。在每次打开页时时,执行数据上报的初始化逻辑,查看本地中是否有残余的上报数据,如果有,则将上报数据重新进行上报到,只有当上报成功时,才会清除缓存中的上报数据。

本发明还提供一种数据上报装置,如图10所示包括:获取模块101、发送模块102和接收模块103。

获取模块101,用于获取对页面的操作指令,并根据操作指令产生上报数据。

发送模块102,用于基于跨域数据交互协议向页面对应的服务器发送上报数据。

接收模块103,用于接收服务器返回的上报数据的上报结果。

上述的数据上报装置,在用户访问页面时,根据对页面的操作指令产生上报数据,并基于跨域数据交互协议向服务器发送上报数据,接收服务器返回的上报数据的上报结果。由于能够获知数据的上报结果,从而基于上报结果,为在上报失败时提供了重新上报的可能,因此,该数据上报装置的可靠性高。

在另一个实施例中,如图11所示,数据上报装置还包括生成模块104、存储模块105和查找获取模块106。

生成模块104,用于生成上报数据的数据标识;发送的上报数据携带数据标识。

存储模块105,用于根据数据标识将上报数据存储在本地;

上报结果携带数据标识;查找获取模块106,用于当接收到的上报结果包括上报失败信息时,根据上报结果携带的数据标识,获取存储在本地的对应的上报数据。

在另一个实施例中,还包括删除模块107,用于当接收到上报结果包括上报成功信息时,删除存储在本地与数据标识对应的上报数据。

上述的数据上报装置,基于跨域数据交互协议向页面对应的服务器发送上报数据,还将上报数据存储在本地,当接收到的上报结果包括上报失败信息时,根据上报结果携带的数据标识,获取存储在本地的对应的上报数据,重新进行上报,减少由于页面跳转等因素造成的上报数据丢失,提高了数据上报的可靠性,并且在上报成功删除存储在本地的上报数据。由于只有在上报结果为上报成功时,才会清除本地存储中对应的上报数据,进一步地提高了数据上报的可靠性。

在再一个实施例中,存储模块105,用于存储上报数据,并为存储的上报数据生成存储标识;建立存储标识与数据标识的对应关系。

删除存储107,用于根据对应关系查找与上报结果携带的数据标识对应的存储标识,并删除存储在本地与存储标识对应的上报数据。

在再一个实施例中,如图12所示,数据上报装置还包括检测模块108。获取模块101,还用于获取页面访问指令,加载对应的页面内容并显示。

检测模块108,用于根据页面对应的域名检测本地是否存储有与域名关联的上报数据。

发送模块102,用于在检测模块的检测结果为是时,基于跨域数据交互协议向页面对应的服务器发送检测到的上报数据。

上述的数据上报装置,在每次打开页时时,执行数据上报的初始化逻辑,查看本地中是否有残余的上报数据,如果有,则将上报数据重新进行上报到,只有当上报成功时,才会清除缓存中的上报数据。

在又一个实施例中,如图13所示,数据上报装置还包括地址获取模块109,当页面为子页面时,地址获取模块109,用于当调用代理页面从父页面跳转到子页面时,获取父页面与子页面的对应关系以及父页面的上报数据在本地的存储地址。

存储模块105,用于根据获取的存储地址将子页面的上报数据存储在本地。

上述的数据上报装置,通过获取父页面的存储地址,将子页面的上报数据存储在该地址下,从而父页面和子页面的上报数据与父页面的存储地址关联。当用户访问父面页面时,也能够及时地上报子页面中的上报失败的数据,无需重新访问子页面。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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