CN107360207B - 界面提交方法、界面提交装置、存储介质及电子装置 - Google Patents
界面提交方法、界面提交装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN107360207B CN107360207B CN201710385593.1A CN201710385593A CN107360207B CN 107360207 B CN107360207 B CN 107360207B CN 201710385593 A CN201710385593 A CN 201710385593A CN 107360207 B CN107360207 B CN 107360207B
- Authority
- CN
- China
- Prior art keywords
- predetermined interface
- data
- order
- interface
- network
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种界面提交方法、界面提交装置、存储介质及电子装置,该方法包括:确定用户设备UE断开网络连接或者用户设备UE的网络连接质量低于预定阈值;对在上述UE上操作的预定界面的信息进行缓存,其中,该预定界面为待通过上述网络进行提交的界面,上述预定界面的信息包括在该预定界面上操作的数据,该预定界面上用于操作上述数据的区域,以及对该数据在上述区域上执行的操作;确定上述UE重新与网络进行连接或者上述UE的网络连接质量不低于上述预定阈值;根据缓存的上述预定界面的信息通过上述网络提交上述预定界面。通过本发明,解决了相关技术中存在的由于网络原因无法提交用户操作的数据,而导致用户操作的数据丢失的问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种界面提交方法、界面提交装置、存储介质及电子装置。
背景技术
随着社会与互联网的发展,人们可以注册一些账号发表文章或对他人发表的文章进行评论,在注册账号或者在发表评论时,必然会涉及到个人资料的填写或者评论内容的填写以及在线提交等(当然,在线提交信息不仅仅局限于注册账号,以及进行评论,也可以适用于其他的需要在线提交信息的情况),下面以填写个人资料为例进行说明:
在移动设备上操作应用(Application,简称为APP)填写个人资料的时候,在填写了一大段内容之后,如果此时断网了,或者网络信号不好了,便会提示由于网络原因无法提交填写的内容。此时用户辛辛苦苦写的很多东西就都没有了,从而导致用户体验很差。
针对上述由于网络原因无法提交用户操作的数据,而导致用户操作的数据丢失的问题,相关技术中并未提出有效的解决方案。
发明内容
本发明实施例提供了一种界面提交方法、界面提交装置、存储介质及电子装置,以至少解决相关技术中存在的由于网络原因无法提交用户操作的数据,而导致用户操作的数据丢失的问题。
根据本发明的一个实施例,提供了一种界面提交方法,包括:确定用户设备UE断开网络连接或者用户设备UE的网络连接质量低于预定阈值;对在所述UE上操作的预定界面的信息进行缓存,其中,所述预定界面为待通过所述网络进行提交的界面,所述预定界面的信息包括在所述预定界面上操作的数据,所述预定界面上用于操作所述数据的区域,以及对所述数据在所述区域上执行的操作;确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值;根据缓存的所述预定界面的信息通过所述网络提交所述预定界面。
可选地,对在所述UE上操作的所述预定界面的信息进行缓存包括:确定预先建立的缓存模型,并利用所述缓存模型封装所述数据;利用命令模式封装对所述数据执行的操作;缓存封装后的所述数据,封装后的所述操作以及所述预定界面上用于操作所述数据的所述区域。
可选地,所述命令模式包括以下内容:用于表示命令执行的抽象方法的抽象命令角色;用于表示命令的具体行为实现方法的命令接收者角色;用于表示命令的接收者以及调用所述接收者的方法的具体命令角色;用于接收客户端所传递的具体命令对象的命令调用者角色。
可选地,根据缓存的所述预定界面的信息通过所述网络提交所述预定界面包括:利用在缓存所述预定界面的信息时所建立的线程队列在缓存区域中轮询待执行的命令,其中,所述缓存区域为用于缓存所述预定界面的信息的区域,所述待执行的命令为利用所述命令模式封装对所述数据执行的所述操作后得到的命令;利用所述线程队列依次通过如下方式并发执行两个以上轮询到的待执行的命令:在所述缓存区域中调用所述待执行的命令对应的数据和区域,并在调用的区域中对所述数据执行所述待执行的命令指示的操作;在执行完所有待执行的命令后,通过所述网络提交所述预定界面。
可选地,利用所述线程队列执行轮询到的所述待执行的命令包括:在利用所述线程队列执行所述待执行的命令超时时,重新执行所述待执行的命令;当重新执行所述待执行的命令超时的次数超过预定次数时,确定所述UE断开网络连接或者用户设备UE的网络连接质量低于所述预定阈值,并将所述待执行的命令重新放回所述缓存区域中;在确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值后,从所述缓存区域中重新获取所述待执行的命令进行执行。
可选地,在暂停所述线程队列执行所述待执行的命令后,所述方法还包括:对所述待执行的命令进行标记;以及,从所述缓存区域中重新获取所述待执行的命令进行执行包括:利用对所述待执行的命令进行的所述标记,从所述缓存区域中重新获取所述待执行的命令进行执行。
可选地,在对在所述UE上操作的预定界面的信息进行缓存之后,所述方法还包括:确定在所述预定界面上进行了数据更新操作;利用在所述更新操作中在所述预定界面上操作的新的数据,所述预定界面上用于操作所述新的数据的新的区域,以及对所述新的数据在所述新的区域上执行的操作更新缓存的所述预定界面的信息。
可选地,在对在所述UE上操作的预定界面的信息进行缓存之后,所述方法还包括:确定退出所述预定界面所属的应用;将缓存的所述预定界面的信息保存到数据库中,以使得在重新启动所述应用时,根据保存在所述数据库中的所述预定界面的信息通过所述网络提交所述预定界面。
根据本发明的另一方面,还提供了一种界面提交装置,包括:第一确定模块,用于确定用户设备UE断开网络连接或者用户设备UE的网络连接质量低于预定阈值;缓存模块,用于对在所述UE上操作的预定界面的信息进行缓存,其中,所述预定界面为待通过所述网络进行提交的界面,所述预定界面的信息包括在所述预定界面上操作的数据,所述预定界面上用于操作所述数据的区域,以及对所述数据在所述区域上执行的操作;第二确定模块,用于确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值;提交模块,用于根据缓存的所述预定界面的信息通过所述网络提交所述预定界面。
可选地,所述缓存模块包括:第一封装单元,用于确定预先建立的缓存模型,并利用所述缓存模型封装所述数据;第二封装单元,用于利用命令模式封装对所述数据执行的操作;缓存单元,用于缓存封装后的所述数据,封装后的所述操作以及所述预定界面上用于操作所述数据的所述区域。
可选地,所述提交模块包括:轮询单元,用于利用在缓存所述预定界面的信息时所建立的线程队列在缓存区域中轮询待执行的命令,其中,所述缓存区域为用于缓存所述预定界面的信息的区域,所述待执行的命令为利用所述命令模式封装对所述数据执行的所述操作后得到的命令;执行单元,用于利用所述线程队列依次通过如下方式执行轮询到的待执行的命令:在所述缓存区域中调用所述待执行的命令对应的数据和区域,并在调用的区域中对所述数据执行所述待执行的命令指示的操作;提交单元,用于在执行完所有待执行的命令后,通过所述网络提交所述预定界面;其中,所述线程队列具备并发执行两个以上命令的能力。
可选地,所述执行单元包括:第一确定子单元,用于在利用所述线程队列执行所述待执行的命令超时时,确定执行所述待执行的命令失败;执行子单元,用于重新执行所述待执行的命令;第二确定子单元,用于当重新执行所述待执行的命令失败的次数超过预定次数时,确定所述UE断开网络连接或者用户设备UE的网络连接质量低于所述预定阈值,暂停所述线程队列执行所述待执行的命令,并将所述待执行的命令重新放回所述缓存区域中;获取子单元,用于在确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值后,从所述缓存区域中重新获取所述待执行的命令进行执行。
可选地,所述执行单元还包括:标记子单元,用于在暂停所述线程队列执行所述待执行的命令后,对所述待执行的命令进行标记;以及,所述获取子单元包括:获取次子单元,用于利用对所述待执行的命令进行的所述标记,从所述缓存区域中重新获取所述待执行的命令进行执行。
根据本发明的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。
根据本发明的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述任一项所述的方法。
通过本发明,由于可以在断网时,或网络连接质量差时对用户在预定界面上的操作进行缓存,并在网络恢复后提交操作后的界面,从而通过缓存的方式避免了在断网或网络质量差时用户操作的数据丢失的情况,因此,可以解决相关技术中存在的由于网络原因无法提交用户操作的数据,而导致用户操作的数据丢失的问题,达到避免在断网或网络质量差时用户操作的数据丢失,提供用户体验的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的界面提交方法的移动终端的硬件结构框图;
图2是根据本发明实施例的界面提交方法的流程图;
图3是根据本发明实施例的缓存模型的示意图;
图4是根据本发明实施例的命令模式中各角色之间的关系示意图;
图5是根据本发明实施例的线程队列的示意图;
图6是根据本发明实施例的待执行命令的处理流程图;
图7是根据本发明实施例的缓存处理的流程图;
图8是根据本发明实施例的界面提交装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在终端(例如,移动终端、计算机终端)或者类似的运算装置中执行。以运行在移动终端上为例,图1是根据本发明实施例的界面提交方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的界面提交方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
实施例2
如前所述,在现有技术中,如果断网或者网络连接质量变差后,会导致无法提交用户操作的数据,但如果此时用户在无网络情况或网络连接质量差的情况下提交了操作的数据后,能够记录下用户的操作,并利用专有的界面去记录下用户的操作(当然,在有网络之前用户也可以随时撤销此操作),在重新联网或网络连接质量变好之后,再在线提交用户操作的数据,便可以避免用户操作的数据丢失,需要用户重新进行操作的问题。本发明实施例中便提供了如上所述的方案,从而可以实现延时提交智能缓存的目的。下面对本发明实施例进行说明:
在本实施例中提供了一种界面提交方法,图2是根据本发明实施例的界面提交方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定用户设备(User Equipment,简称为UE)断开网络连接或者用户设备UE的网络连接质量低于预定阈值;
步骤S204,对在上述UE上操作的预定界面的信息进行缓存,其中,该预定界面为待通过上述网络进行提交的界面,上述预定界面的信息包括在该预定界面上操作的数据,该预定界面上用于操作上述数据的区域,以及对该数据在上述区域上执行的操作;
步骤S206,确定上述UE重新与网络进行连接或者上述UE的网络连接质量不低于上述预定阈值;
步骤S208,根据缓存的上述预定界面的信息通过上述网络提交上述预定界面。
在本实施例中,预定界面可以是用于输入用户资料的界面,也可以是用于填写评论的界面,也可以是其他的用于在线提交数据的界面。在此,不做限定。上述的预定阈值是可以根据实际情况进行灵活设置的。需要说明的是,上述预定界面的信息可以包括多种类型的信息(如上所述的数据的信息、操作的信息、区域的信息),所以在对预定界面的各个信息进行缓存时,各具体类型的信息(即,数据的信息、操作的信息、区域的信息)的缓存没有必然的先后顺序,可以同时执行各信息的缓存,也可以分开执行各信息的缓存,且在分开执行各信息的缓存时,缓存顺序可以灵活设置。
上述实施例中各步骤的执行主体可以是终端。
通过本发明,由于可以在断网时,或网络连接质量差时对用户在预定界面上的操作进行缓存,并在网络恢复后提交操作后的界面,从而通过缓存的方式避免了在断网或网络质量差时用户操作的数据丢失的情况,因此,可以解决相关技术中存在的由于网络原因无法提交用户操作的数据,而导致用户操作的数据丢失的问题,达到避免在断网或网络质量差时用户操作的数据丢失,提供用户体验的效果。
在一个可选地实施例方式中,可以利用将预定界面的信息具体成实体对象的方式来对预定界面的信息进行缓存,可选地,在缓存在上述预定界面上操作的数据时,可以先确定预定建立的缓存模型,然后利用确定的缓存模型封装该数据。需要说明的是,缓存模型可以是预先建好的,并且,针对不同的界面上的数据(或者说针对不同类型的数据,数据类型可以填写用户资料的数据,或者是发表评论的数据,或者是其他类型的数据),可以采用不同的缓存模型,也可以理解成将用户的操作进行分类,比如,在实际操作时,可以通过如下方式将操作用户资料,填写评论等不同操作抽象成不同类型的枚举,从而可以针对不同的操作调用不同的缓存模型:
在一个优选的实施例方式中,可以预先建立一个缓存模型库,该缓存模型库中存放有针对各种类型数据的缓存模型,当需要缓存数据时,直接从缓存模型库中调用相应的缓存模型即可,缓存模型可以设计成如图3所示的模型,当然,也可以根据实际情况设计不同样式的缓存模型。可选地,在缓存对上述数据在上述区域上执行的操作时,可以用命令模式封装对上述数据执行的操作,也就是说,可以用命令模式将用户操作封装成实体的模型,可以将每个请求(即,每个操作)均封装成一个实体的对象,从而可以实现不同请求的参数化。在利用上述缓存模型封装上述数据并利用上述命令模式封装对上述数据执行的操作之后,可以缓存如下信息:封装后的数据,封装后的操作以及上述预定界面上用于操作上述数据的区域。
在上述的实施例方式中,在封装对上述数据执行的操作时,可以利用命令模式进行封装,下面对该命令模式进行举例说明:
上述命令模式可以包括以下内容(需要说明的是,根据实际应用场景,上述命令模式也可以包括如下角色至少之一):用于表示命令执行的抽象方法的抽象命令角色(也可以称为Command,用于抽象命令);用于表示命令的具体行为实现方法的命令接收者角色(也可以称为Receiver);用于表示命令的接收者以及调用所述接收者的方法的具体命令角色(也可以称为Concrete Command);用于接收客户端所传递的具体命令对象的命令调用者角色(也可以称为Invoker)。利用上述命令模式封装后的操作也可以是囊括上述几个角色的,从而实现了操作的实体化。命令模式中各角色之间的关系可以参考图4所示的关系,在图4中,Client是客户端,用于输入具体的命令。
在一个可选的实施例中,在根据缓存的上述预定界面的信息通过上述网络提交上述预定界面时,可以通过如下方式进行处理:利用在缓存上述预定界面的信息时所建立的线程队列在缓存区域中轮询待执行的命令,其中,该缓存区域为用于缓存上述预定界面的信息的区域,该待执行的命令为利用上述命令模式封装对数据执行的上述操作后得到的命令;利用上述线程队列依次通过如下方式并发执行两个以上轮询到的待执行的命令:在上述缓存区域中调用待执行的命令对应的数据和区域,并在调用的区域中对上述数据执行待执行的命令指示的操作;在执行完所有待执行的命令后,通过上述网络提交上述预定界面。由上述实施例可知,在缓存上述预定界面的信息时,可以建立线程队列(该线程队列的结构可以参考图5),在建立了线程队列后,可以利用该线程队列完成对上述预定界面的操作,下面对上述线程队列进行说明:
在本实施例中,线程队列中的操作流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时(即,用户有一个新的操作时),就会唤醒线程池中的某一个睡眠线程,让该被唤醒的线程来处理客户端的这个请求,当处理完这个请求后,该被唤醒的线程又会处于睡眠状态,在利用线程队列对用户的请求进行处理时,可以实现线程复用以及并发控制请求,平滑高峰请求。也就是说,使用线程池技术可以实现工作线程的复用,即一个工作线程创建和销毁的生命周期期间内可以执行处理多个任务(即,执行两个以上任务),从而总体上降低线程创建和销毁的频率和时间,提升***性能。并且,线程池中的任务队列可以起到缓冲的作用,由于服务器资源有限,超过服务器性能的过高并发设置会成为***的负担,造成中央处理器(Central Processing Unit,简称为CPU)大量耗费于上下文切换,从而可能会导致内存溢出等问题,所以,使用线程队列可以实现并发控制,平滑高峰请求。此外,通过线程池技术可以控制***最大并发数和最大处理任务量,从而有效实现流量控制,保证***不至于崩溃。
在一个可选的实施例中,可以在将用户操作放入缓存中时建立线程队列,利用上述线程队列执行轮询到的待执行的命令可以包括如下操作:在利用上述线程队列执行待执行的命令超时时,确定执行上述待执行的命令失败;重新执行上述待执行的命令;当重新执行上述待执行的命令失败的次数超过预定次数时(例如,可以设置为3次,当然也可以根据实际要求对预定次数进行设置,例如,设置成2次,或者设置成4次,或者根据不同的时间段来设置该预定次数),确定上述UE断开网络连接或者用户设备UE的网络连接质量低于上述预定阈值,暂停上述线程队列执行待执行的命令,并将上述待执行的命令重新放回缓存区域中;在确定上述UE重新与网络进行连接或者UE的网络连接质量不低于上述预定阈值后,从上述缓存区域中重新获取上述待执行的命令进行执行。也就是说,线程队列可以在缓存区域中轮询是否有命令(即,上述的待执行的命令)要执行,如果有命令,且当前终端与网络连接良好的时候就去执行命令,否则就暂停轮询过程,同时兼听网络数据的变化。如果监听到有网络了,则继续利用线程队列从缓存区域中拿数据去执行命令。如果此时执行超时,很有可能是网络中途突然出现了问题,那么此时可以尝试重试执行命令,例如,可以重试3次。如果还是不行,则把命令继续放入缓存区域中。等到网络变化的时候(即,重新联网之后,或者网络连接质量超过预定阈值之后)再尝试执行该命令。如果此时成功了,则可以从缓存中移除此命令。需要说明的是,在没有网络的时候(或网络连接质量不好的时候)线程队列是暂停的,有网络(或网络连接质量变好之后)时才会恢复执行。
上述实施例中的具体操作流程也可以参考图6所示的流程图,在图6所示的流程中,可以首先建立缓存模型(S602),再利用命令模型对用户操作进行封装(即,将用户操作封装成类似命令模型的实体)(S604),然后可以获取用户的操作界面(即,上述的预定界面),并将用户的操作界面放入缓存中进行缓存(S606-610),之后便可以利用上述的线程队列执行后续的操作,包括建立线程队列(也可以称为提交队列)(S612),并实时监听网络变化(S614),在网络连接良好之后提交待执行的命令(S616),并在执行超时时进行重试(S618),以及,在执行成功时,从缓存中移除此命令(S620-622)。
在一个可选的实施例中,再将未执行成功的命令放入缓存区域中时,可以对该命令进行标记,以便后续能够快速找到该命令,具体操作如下:在暂停上述线程队列执行待执行的命令后,上述方法还包括:对该待执行的命令进行标记;以及,从上述缓存区域中重新获取上述待执行的命令进行执行包括:利用对该待执行的命令进行的上述标记,从该缓存区域中重新获取上述待执行的命令进行执行。
在一个可选的实施例中,在对在上述UE上操作的预定界面的信息进行缓存之后,上述方法还包括:确定在上述预定界面上进行了数据更新操作(更新操作可以包括数据的替换、删除、新添、撤回等操作);利用在该更新操作中在上述预定界面上操作的新的数据,上述预定界面上用于操作上述新的数据的新的区域,以及对上述新的数据在上述新的区域上执行的操作更新缓存的上述预定界面的信息。下面对替换操作以及撤回操作进行说明:
在执行替换操作时,即用户第一次操作了个人资料(本实施例仅以替换个人资料为例进行说明,也可以适用于其他的替换操作,例如,评论内容的替换),第二次又去操作了一次,则可以将缓存模型里面的相应类型命令进行替换,如果用户进行了撤回操作,则可以在缓存模型中去删除对应命令。关于撤回操作,可以将命令放到一个堆栈里面,只需要挨个弹出来即可实现。命令模式主要就是要体会封装调用的思想,在实际开发中,消息队列是一个很常用的一个机制,他们不管队列里面是执行什么任务,网络请求呐或者数据运算呐,无需考虑具体业务,只需要执行命令即可。比如会用在数据库日志中,通过记录命令来达到日志的各种功能,比如数据库恢复,等等。
在一个可选的实施例中,在对在上述UE上操作的预定界面的信息进行缓存之后,上述方法还包括:确定退出上述预定界面所属的APP;将缓存的上述预定界面的信息保存到数据库中,以使得在重新启动上述APP时,根据保存在上述数据库中的预定界面的信息通过网络提交上述预定界面。具体流程可以参考图7,也就是说,退出APP的时候(S702),可以将缓存保存到数据库中(S704)。再启动APP的时候(S706),可以在保存到数据库中的缓存中找寻是否有待执行的命令(S708),有的话启动轮询的线程队列去执行任务(S710)。在本实施例中,可以通过sqlite,跨android和iOS平台去进行数据存储。
通过上述各实施例,可以实现通过延时提交智能缓存的方案解决网络异常的时候或者网络慢的时候用户操作的数据丢失的情况,从而可以极大地节省响应时间,提高用户体验。
实施例3
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种界面提交装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的界面提交装置的结构框图,如图8所示,该装置包括第一确定模块82,缓存模块84,第二确定模块86和提交模块88,下面对该装置进行说明:
第一确定模块82,用于确定用户设备UE断开网络连接或者用户设备UE的网络连接质量低于预定阈值;缓存模块84,连接至上述第一确定模块82,用于对在上述UE上操作的预定界面的信息进行缓存,其中,该预定界面为待通过上述网络进行提交的界面,该预定界面的信息包括在上述预定界面上操作的数据,该预定界面上用于操作上述数据的区域,以及对上述数据在上述区域上执行的操作;第二确定模块86,连接至上述缓存模块84,用于确定上述UE重新与上述网络进行连接或者UE的网络连接质量不低于上述预定阈值;提交模块88,连接至上述第二确定模块86,用于根据缓存的上述预定界面的信息通过上述网络提交上述预定界面。
在一个可选的实施例中,上述缓存模块84包括:第一封装单元,用于确定预先建立的缓存模型,并利用上述缓存模型封装上述数据;第二封装单元,用于利用命令模式封装对所述数据执行的操作;缓存单元,用于缓存封装后的上述数据,封装后的上述操作以及上述预定界面上用于操作上述数据的上述区域。
在一个可选的实施例中,上述命令模式包括以下内容:用于表示命令执行的抽象方法的抽象命令角色;用于表示命令的具体行为实现方法的命令接收者角色;用于表示命令的接收者以及调用所述接收者的方法的具体命令角色;用于接收客户端所传递的具体命令对象的命令调用者角色。
在一个可选的实施例中,上述提交模块88包括:轮询单元,用于利用在缓存上述预定界面的信息时所建立的线程队列在缓存区域中轮询待执行的命令,其中,该缓存区域为用于缓存上述预定界面的信息的区域,上述待执行的命令为利用上述命令模式封装对数据执行的上述操作后得到的命令;执行单元,用于利用上述线程队列依次通过如下方式并发执行两个以上轮询到的待执行的命令:在上述缓存区域中调用上述待执行的命令对应的数据和区域,并在调用的区域中对上述数据执行待执行的命令指示的操作;提交单元,用于在执行完所有待执行的命令后,通过上述网络提交上述预定界面;其中,该线程队列具备并发执行两个以上命令的能力。
在一个可选的实施例中,上述执行单元包括:第一确定子单元,用于在利用上述线程队列执行待执行的命令超时时,确定执行上述待执行的命令失败;执行子单元,用于重新执行上述待执行的命令;第二确定子单元,用于当重新执行上述待执行的命令失败的次数超过预定次数时,确定上述UE断开网络连接或者用户设备UE的网络连接质量低于上述预定阈值,暂停线程队列执行待执行的命令,并将上述待执行的命令重新放回缓存区域中;获取子单元,用于在确定上述UE重新与网络进行连接或者上述UE的网络连接质量不低于上述预定阈值后,从缓存区域中重新获取上述待执行的命令进行执行。
在一个可选的实施例中,上述执行单元还包括:标记子单元,用于在暂停上述线程队列执行上述待执行的命令后,对待执行的命令进行标记;以及,上述获取子单元包括:获取次子单元,用于利用对上述待执行的命令进行的标记,从上述缓存区域中重新获取待执行的命令进行执行。
在一个可选的实施例中,上述装置还包括:第三确定模块,用于在对在上述UE上操作的预定界面的信息进行缓存之后,确定在上述预定界面上进行了数据更新操作;更新模块,用于利用在上述更新操作中在上述预定界面上操作的新的数据,上述预定界面上用于操作新的数据的新的区域,以及对新的数据在新的区域上执行的操作更新缓存的预定界面的信息。
在一个可选的实施例中,上述装置还包括:第四确定模块,用于在对在上述UE上操作的预定界面的信息进行缓存之后,确定退出上述预定界面所属的应用;保存模块,用于将缓存的上述预定界面的信息保存到数据库中,以使得在重新启动所述应用时,根据保存在上述数据库中的预定界面的信息通过上述网络提交上述预定界面。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(RandomAccess Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的实施例还提供了一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述任一项所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种界面提交方法,其特征在于,包括:
确定用户设备UE断开网络连接或者用户设备UE的网络连接质量低于预定阈值;
对在所述UE上操作的预定界面的信息进行缓存,其中,所述预定界面为待通过所述网络进行提交的界面,所述预定界面的信息包括在所述预定界面上操作的数据,所述预定界面上用于操作所述数据的区域,以及对所述数据在所述区域上执行的操作;
确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值;
根据缓存的所述预定界面的信息通过所述网络提交所述预定界面;
其中,对在所述UE上操作的所述预定界面的信息进行缓存包括:确定预先建立的缓存模型,并利用所述缓存模型封装所述数据;利用命令模式封装对所述数据执行的操作;缓存封装后的所述数据,封装后的所述操作以及所述预定界面上用于操作所述数据的所述区域。
2.根据权利要求1所述的方法,其特征在于,所述命令模式包括以下内容:
用于表示命令执行的抽象方法的抽象命令角色;
用于表示命令的具体行为实现方法的命令接收者角色;
用于表示命令的接收者以及调用所述接收者的方法的具体命令角色;
用于接收客户端所传递的具体命令对象的命令调用者角色。
3.根据权利要求1所述的方法,其特征在于,根据缓存的所述预定界面的信息通过所述网络提交所述预定界面包括:
利用在缓存所述预定界面的信息时所建立的线程队列在缓存区域中轮询待执行的命令,其中,所述缓存区域为用于缓存所述预定界面的信息的区域,所述待执行的命令为利用所述命令模式封装对所述数据执行的所述操作后得到的命令;
利用所述线程队列依次通过如下方式并发执行两个以上轮询到的待执行的命令:在所述缓存区域中调用所述待执行的命令对应的数据和区域,并在调用的区域中对所述数据执行所述待执行的命令指示的操作;
在执行完所有待执行的命令后,通过所述网络提交所述预定界面。
4.根据权利要求3所述的方法,其特征在于,利用所述线程队列执行轮询到的所述待执行的命令包括:
在利用所述线程队列执行所述待执行的命令超时时,重新执行所述待执行的命令;
当重新执行所述待执行的命令超时的次数超过预定次数时,确定所述UE断开网络连接或者用户设备UE的网络连接质量低于所述预定阈值,并将所述待执行的命令重新放回所述缓存区域中;
在确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值后,从所述缓存区域中重新获取所述待执行的命令进行执行。
5.根据权利要求4所述的方法,其特征在于,
在暂停所述线程队列执行所述待执行的命令后,所述方法还包括:对所述待执行的命令进行标记;以及,
从所述缓存区域中重新获取所述待执行的命令进行执行包括:利用对所述待执行的命令进行的所述标记,从所述缓存区域中重新获取所述待执行的命令进行执行。
6.根据权利要求1所述的方法,其特征在于,在对在所述UE上操作的预定界面的信息进行缓存之后,所述方法还包括:
确定在所述预定界面上进行了数据更新操作;
利用在所述更新操作中在所述预定界面上操作的新的数据,所述预定界面上用于操作所述新的数据的新的区域,以及对所述新的数据在所述新的区域上执行的操作更新缓存的所述预定界面的信息。
7.根据权利要求1所述的方法,其特征在于,在对在所述UE上操作的预定界面的信息进行缓存之后,所述方法还包括:
确定退出所述预定界面所属的应用;
将缓存的所述预定界面的信息保存到数据库中,以使得在重新启动所述应用时,根据保存在所述数据库中的所述预定界面的信息通过所述网络提交所述预定界面。
8.一种界面提交装置,其特征在于,包括:
第一确定模块,用于确定用户设备UE断开网络连接或者用户设备UE的网络连接质量低于预定阈值;
缓存模块,用于对在所述UE上操作的预定界面的信息进行缓存,其中,所述预定界面为待通过所述网络进行提交的界面,所述预定界面的信息包括在所述预定界面上操作的数据,所述预定界面上用于操作所述数据的区域,以及对所述数据在所述区域上执行的操作;
第二确定模块,用于确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值;
提交模块,用于根据缓存的所述预定界面的信息通过所述网络提交所述预定界面;
其中,所述缓存模块包括:第一封装单元,用于确定预先建立的缓存模型,并利用所述缓存模型封装所述数据;第二封装单元,用于利用命令模式封装对所述数据执行的操作;缓存单元,用于缓存封装后的所述数据,封装后的所述操作以及所述预定界面上用于操作所述数据的所述区域。
9.根据权利要求8所述的装置,其特征在于,所述提交模块包括:
轮询单元,用于利用在缓存所述预定界面的信息时所建立的线程队列在缓存区域中轮询待执行的命令,其中,所述缓存区域为用于缓存所述预定界面的信息的区域,所述待执行的命令为利用所述命令模式封装对所述数据执行的所述操作后得到的命令;
执行单元,用于利用所述线程队列依次通过如下方式执行轮询到的待执行的命令:在所述缓存区域中调用所述待执行的命令对应的数据和区域,并在调用的区域中对所述数据执行所述待执行的命令指示的操作;
提交单元,用于在执行完所有待执行的命令后,通过所述网络提交所述预定界面;
其中,所述线程队列具备并发执行两个以上命令的能力。
10.根据权利要求9所述的装置,其特征在于,所述执行单元包括:
第一确定子单元,用于在利用所述线程队列执行所述待执行的命令超时时,确定执行所述待执行的命令失败;
执行子单元,用于重新执行所述待执行的命令;
第二确定子单元,用于当重新执行所述待执行的命令失败的次数超过预定次数时,确定所述UE断开网络连接或者用户设备UE的网络连接质量低于所述预定阈值,暂停所述线程队列执行所述待执行的命令,并将所述待执行的命令重新放回所述缓存区域中;
获取子单元,用于在确定所述UE重新与所述网络进行连接或者所述UE的网络连接质量不低于所述预定阈值后,从所述缓存区域中重新获取所述待执行的命令进行执行。
11.根据权利要求10所述的装置,其特征在于,
所述执行单元还包括:标记子单元,用于在暂停所述线程队列执行所述待执行的命令后,对所述待执行的命令进行标记;以及,
所述获取子单元包括:获取次子单元,用于利用对所述待执行的命令进行的所述标记,从所述缓存区域中重新获取所述待执行的命令进行执行。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至7中任一项所述的方法。
13.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710385593.1A CN107360207B (zh) | 2017-05-26 | 2017-05-26 | 界面提交方法、界面提交装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710385593.1A CN107360207B (zh) | 2017-05-26 | 2017-05-26 | 界面提交方法、界面提交装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107360207A CN107360207A (zh) | 2017-11-17 |
CN107360207B true CN107360207B (zh) | 2018-05-22 |
Family
ID=60271730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710385593.1A Active CN107360207B (zh) | 2017-05-26 | 2017-05-26 | 界面提交方法、界面提交装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107360207B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461072A (zh) * | 2018-11-07 | 2019-03-12 | 中国银行股份有限公司 | 一种交易执行方法及装置 |
CN111459675B (zh) * | 2020-03-31 | 2023-09-15 | 拉扎斯网络科技(上海)有限公司 | 一种数据处理方法、装置、可读存储介质和电子设备 |
CN114598664A (zh) * | 2020-12-03 | 2022-06-07 | 武汉斗鱼鱼乐网络科技有限公司 | 一种任务执行方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787511A (zh) * | 2004-12-07 | 2006-06-14 | 联想(北京)有限公司 | 实现计算机离线应用的方法及*** |
CN102457499A (zh) * | 2010-10-26 | 2012-05-16 | 腾讯科技(深圳)有限公司 | 客户端的离线工作方法和离线工作客户端 |
CN102468989A (zh) * | 2010-11-11 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 处理网络数据的方法和*** |
WO2015192660A1 (en) * | 2014-06-20 | 2015-12-23 | Tencent Technology (Shenzhen) Company Limited | Method and system for caching input content |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455603B (zh) * | 2013-09-03 | 2016-08-17 | 小米科技有限责任公司 | 网页内容缓存、网页加载方法、装置及终端设备 |
CN106095999A (zh) * | 2016-06-22 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 获取页面内容的方法及装置 |
-
2017
- 2017-05-26 CN CN201710385593.1A patent/CN107360207B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787511A (zh) * | 2004-12-07 | 2006-06-14 | 联想(北京)有限公司 | 实现计算机离线应用的方法及*** |
CN102457499A (zh) * | 2010-10-26 | 2012-05-16 | 腾讯科技(深圳)有限公司 | 客户端的离线工作方法和离线工作客户端 |
CN102468989A (zh) * | 2010-11-11 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 处理网络数据的方法和*** |
WO2015192660A1 (en) * | 2014-06-20 | 2015-12-23 | Tencent Technology (Shenzhen) Company Limited | Method and system for caching input content |
Also Published As
Publication number | Publication date |
---|---|
CN107360207A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360207B (zh) | 界面提交方法、界面提交装置、存储介质及电子装置 | |
CN105245373B (zh) | 一种容器云平台***的搭建及运行方法 | |
CN107222426A (zh) | 控流的方法、装置及*** | |
CN104205923B (zh) | 用于校正与身份供应相关联的错误事件的方法和装置 | |
CN107145389A (zh) | 一种***进程监控方法及计算设备 | |
CN105871587A (zh) | 日志上传方法及装置 | |
CN102222010B (zh) | 一种移动终端版本升级的方法及实现*** | |
CN105847367A (zh) | 服务请求处理方法及装置 | |
CN109167820A (zh) | 一种应用程序的下载方法、装置、存储介质及终端 | |
CN108287751A (zh) | 任务执行方法及装置、分布式*** | |
CN110532077B (zh) | 任务处理方法、装置及存储介质 | |
CN110166529A (zh) | 保持登录态方法、装置、设备及存储介质 | |
CN106102850A (zh) | 游戏***、存储控制装置、程序以及信息存储介质 | |
CN107908487A (zh) | 任务控制管理方法、装置、设备及计算机可读存储介质 | |
CN111181774A (zh) | 一种MapReduce任务的高可用方法、***、终端及存储介质 | |
CN108616668B (zh) | 监控拨打任务的方法、电子装置及计算机可读存储介质 | |
CN109032635A (zh) | 软件升级方法、装置和网络设备 | |
CN107196777A (zh) | 一种应用处理的方法和装置 | |
CN105871958A (zh) | 集中管理账户信息的方法和终端 | |
CN106897126A (zh) | 一种图片抓取方法和服务器 | |
CN107491350A (zh) | 接口任务调用方法及装置 | |
CN106445610A (zh) | 一种应用程序处理方法及装置 | |
CN105094947B (zh) | 一种虚拟计算资源的配额管理方法及*** | |
CN110351319A (zh) | 一种请求消息传输方法、装置及传输设备 | |
CN109643296A (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 |