表单页面响应处理方法及装置与流程

文档序号:19930133发布日期:2020-02-14 21:55阅读:215来源:国知局
表单页面响应处理方法及装置与流程

本发明实施例涉及互联网技术领域,具体涉及一种表单页面响应处理方法及装置。



背景技术:

用户在前端的表单页面(如h5页面、小程序页面等)中进行信息的配置录入等操作(如设置物品信息等)时,需要提交表单数据。后端接收到提交的表单数据后,其需要对数据进行处理,以返回对应的结果。这个过程为后端对表单页面的响应过程。

后端在响应处理以上提交的表单数据时,与前端进行查询操作等不同,其耗时较多。因为后端不仅需要对提交的表单数据进行存储,在存储操作之前还需要对提交的表单数据进行校验,校验各种数据的合法性等,而校验操作会产生大量的查询处理,尤其当校验涉及到底层的业务和模型过于复杂时,校验时间会大大增加。在校验成功后,才能对提交的表单数据进行写入操作,导致用户在前端页面上需等待几秒甚至几十秒的时间,用户会感觉到前端页面处于卡住或等待的状态。由于用户不理解后端的具体的进度,极有可能会产生误操作(如重新请求、关闭前端页面等)。利用完全异步方式虽然可以将校验与提交分离,但由于上述操作限定了需要在校验后才能进行提交存储等操作,使得无法将两者进行异步处理。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的表单页面响应处理方法及装置。

根据本发明实施例的一个方面,提供了一种表单页面响应处理方法,其包括:

接收客户端触发的表单提交请求;

开启主线程和至少一个子线程并发对请求进行处理,并对主线程执行处理的时间进行监控;若执行处理的时间超过处理响应时间阈值,则中断主线程的处理,向客户端返回再提交提示信息;

接收客户端再次触发的表单提交请求;

判断至少一个子线程是否已完成处理,若是,则根据至少一个子线程的处理结果执行对应的操作。

可选地,在中断后端主线程的处理时,方法还包括:

由至少一个子线程继续执行处理,在至少一个子线程执行完成处理后,将处理结果存储在后端缓存中。

可选地,表单提交请求携带有表单数据;

判断至少一个子线程是否已完成处理进一步包括:

判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据是否相同;

若是,判断至少一个子线程已完成处理。

可选地,表单数据包括用户数据、物品数据和/或服务数据;

处理具体为对用户数据进行资质校验处理;和/或,对物品数据和/或服务数据进行数据合规校验处理。

可选地,根据至少一个子线程的处理结果执行对应的操作进一步包括:

若处理结果为校验成功,则将表单提交请求携带的表单数据进行提交存储处理并返回客户端处理结果;

若处理结果为校验失败,则返回客户端验证失败提示。

根据本发明实施例的另一方面,提供了一种表单页面响应处理装置,其包括:

第一接收模块,适于接收客户端触发的表单提交请求;

处理模块,适于开启主线程和至少一个子线程并发对请求进行处理,并对主线程执行处理的时间进行监控;若执行处理的时间超过处理响应时间阈值,则中断主线程的校验处理,向客户端返回再提交提示信息;

第二接收模块,适于接收客户端再次触发的表单提交请求;

判断模块,适于判断至少一个子线程是否已完成处理;

执行模块,适于若判断模块判断至少一个子线程已完成处理,则根据至少一个子线程的处理结果执行对应的操作。

可选地,装置还包括:

存储模块,适于由至少一个子线程继续执行处理,在至少一个子线程执行完成处理后,将处理结果存储在后端缓存中。

可选地,表单提交请求携带有表单数据;

判断模块进一步适于:

判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据是否相同;

若是,判断至少一个子线程已完成处理。

可选地,表单数据包括用户数据、物品数据和/或服务数据;

处理具体为对用户数据进行资质校验处理;和/或,对物品数据和/或服务数据进行数据合规校验处理。

可选地,执行模块进一步适于:

若处理结果为校验成功,则将表单提交请求携带的表单数据进行提交存储处理并返回客户端处理结果;若处理结果为校验失败,则返回客户端验证失败提示。

根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;

存储器用于存放至少一可执行指令,可执行指令使处理器执行上述表单页面响应处理方法对应的操作。

根据本发明实施例的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述表单页面响应处理方法对应的操作。

根据本发明实施例提供的表单页面响应处理方法及装置,接收客户端触发的表单提交请求;开启主线程和至少一个子线程并发对请求进行处理,并对主线程执行处理的时间进行监控;若执行处理的时间超过处理响应时间阈值,则中断主线程的处理,向客户端返回再提交提示信息;接收客户端再次触发的表单提交请求;判断至少一个子线程是否已完成处理,若是,则根据至少一个子线程的处理结果执行对应的操作。基于本发明实施例将表单页面响应处理时间过长造成用户等待时间过长,体验不佳等问题进行改善,表单页面的响应处理通过监控处理响应时间阈值,及时反馈给用户提示信息,减少用户等待时间。对于表单提交请求的处理,后端开启主线程和至少一个子线程并发执行,使处理所花费时间对用户透明,便于在接收客户端再次触发的表单提交请求时,可以快速响应提交请求进行处理,从而可以实现快速处理,也方便快速反馈用户表单提交请求的处理结果,大大改善用户等待表单提交请求时间过长的不良体验。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一个实施例的表单页面响应处理方法的流程示意图;

图2示出了根据本发明实施例一个实施例的表单页面响应处理装置的结构框图;

图3示出了根据本发明实施例一个实施例的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明实施例一个实施例的表单页面响应处理方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤s101,接收客户端触发的表单提交请求。

客户端触发的表单提交请求,一般由用户在客户端所显示的前端表单页面中触发,表单提交请求中携带有表单数据,前端表单页面可以根据具体实施情况设置表单数据。前端表单页面可以采用如h5页面、小程序页面等包含表单项的页面。用户在前端表单页面进行提交操作,从而可以接收到客户端在前端表单页面触发的携带有表单数据的表单提交请求。表单数据包括前端表单页面中具体的页面项目,还可以包括提交的用户数据,当接收到客户端触发的表单提交请求后,前端表单页面进行等待响应状态。

步骤s102,开启主线程和至少一个子线程并发对请求进行处理,并对主线程执行处理的时间进行监控。

在接收到客户端的表单提交请求后,对表单提交请求进行处理。针对表单提交请求,为保障表单数据的准确性、合理性、合法性等各方面数据要求,对表单提交请求进行处理时,一般会在存储表单数据前对其进行处理。具体的,表单数据包括了如用户数据、物品数据、服务数据等,处理具体为对用户数据进行资质校验处理、对物品数据和/或服务数据进行数据合规校验处理等。对用户数据的资质校验处理具体包括如根据用户数据校验用户数据是否已进行资质认证、用户是否具有权限提交表单数据、用户提交的表单数据是否与用户数据相符等等;对物品数据、服务数据的数据合规校验处理具体包括如物品数据、服务数据本身的数据数值、类型等是否正确符合校验规定;物品数据、服务数据是否具有被提交操作的权限等等。

本实施例中由后端执行该处理,此处的后端与前端表单页面相对,其具体为服务器侧后端。在后端同时开启多线程并发处理,如开启至少一个子线程,将至少一个子线程与主线程并发执行对表单数据的处理。具体的,开启一个子线程,子线程和主线程同时对表单数据执行相同的处理。主线程执行处理的目的在于,对处理的时间进行监控,避免因处理过程花费时间较长导致客户端的前端表单页面长期处于等待状态。

进一步,若表单数据的处理中存在多个需要校验的数据,且多个需要校验的数据间不存在处理的先后顺序关系、关联关系等关系时,即存在可以拆分的多个独立的对单个数据进行校验的处理时,可以在后端可以开启多个子线程,将以上对单个数据进行的处理分配给不同的子线程执行,通过多个子线程共同执行来完成对表单数据的多个处理。对于涉及处理时的先后顺序关系、关联关系等关系时,即存在不可拆分,需要根据校验先后顺序、关联关系等对表单数据进行校验时,则将这些处理由一个子线程进行执行。当由一个或多个子线程执行完成对表单数据的处理后,将表单数据以及得到的表单数据对应的处理结果存储在后端缓存中。存储的表单数据与表单数据的处理结果具有对应关系,可以采用如键值对方式等进行存储。

步骤s103,监控主线程执行处理的时间是否超过处理响应时间阈值。

当表单数据包括较大数据,校验处理复杂时,可能会导致主线程执行处理的时间达到30s,用户需要花费较长时间等待响应,导致用户体验效果不佳。处理响应时间阈值根据执行处理时用户可承受响应时间的反馈信息或者根据历史执行处理的时间数据设置,也可以根据具体实施情况设置。为减少用户等待响应,可以将处理响应时间阈值设置为如1s,若在处理响应时间阈值内没有完成对表单数据的处理时,也先对用户进行响应,减少用户等待响应的焦虑。具体的,在主线程执行对表单数据的处理时,监控其执行处理的时间。将主线程执行处理的时间与处理响应时间阈值进行比较,若超过处理响应时间阈值,则执行步骤s104。

进一步,若主线程执行处理的时间较快,即对表单数据的处理比较简单时,未超过处理响应时间阈值时,可以在处理响应时间阈值内直接得到表单数据的处理结果时,本实施例可以直接根据表单数据的处理结果进行后续的操作。针对表单数据处理复杂,处理时间花费较多的情况,本实施例可以大大改善用户等待响应时间的体验效果。

步骤s104,中断主线程的处理,向客户端返回再提交提示信息。

中断当前主线程对表单数据的处理,直接向客户端返回再提交提示信息,用户可以根据返回的再提交提示信息后续进行再次提交,而无需继续等待。此时,至少一个子线程对表单数据的处理会继续执行,直至执行完成对表单数据的处理,存储表单数据与表单数据的处理结果。

客户端显示的再提交提示信息可以显示如“系统繁忙,请稍后再试”等,对于用户而言,前端页面显示再提交提示信息,使得后端继续执行的处理对用户透明,用户无感知后端还在继续执行对本次提交的表单数据的处理,用户感知到对表单提交请求的处理响应时间短,用户体验效果好。进一步,根据再提交提示信息,用户可以不必如现有技术所采用的处理方式需要一直等待页面的响应,可以在稍后时间再次重新触发对前端表单页面的表单提交请求。前端表单页面在显示再提交提示信息后,不对页面中数据等进行处理,停留在当前的前端表单页面,方便用户在客户端再次触发表单提交请求。

步骤s105,接收客户端再次触发的表单提交请求,判断至少一个子线程是否已完成处理。

当接收到客户端再次触发的携带有表单数据的表单提交请求时,判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据是否相同,若相同,则说明至少一个子线程已完成处理,后端已存储对表单数据的处理结果,可以从后端缓存中直接获取表单数据对应的处理结果,执行步骤s106。

进一步,对于客户端触发的表单提交请求,通过判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据相同,进而获取到后端已存储的对表单数据的处理结果,实现快速地响应表单提交请求。当判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据不同,即后端未存储对表单数据的处理结果,可以先开启主线程和至少一个子线程并发对请求进行处理,并监控主线程执行处理的时间,快速地通过再提交提示信息对提交的表单提交请求进行响应。等到判断再次接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据相同,即后端已存储对表单数据的处理结果时,可以直接获取到表单数据的处理结果,来对其进行后续的操作,大大减少用户等待响应时间。

进一步,若处理为对用户数据的校验处理,当不同的前端表单页面都使用同一个用户数据进行表单提交请求时,在首次完成对用户数据的校验处理,存储校验处理的处理结果后,在判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据是否相同时,可以将再次接收到的表单数据中的用户数据与后端缓存中的表单数据的用户数据进行比对,若用户数据一致,则直接获取到表单数据的处理结果,对其进行后续的操作,减少每次提交表单提交请求均需对用户数据进行校验处理所花费的时间,大大提高响应时间。

进一步,后端缓存中存储的表单数据的处理结果可以设置缓存时限,当存储到达缓存时限后,清除后端缓存中存储的表单数据的处理结果,以免发生因用户数据的资质校验发生变化,而存储的表单数据的处理结果未及时更新,导致存储的表单数据的处理结果不正确等问题。

步骤s106,根据至少一个子线程的处理结果执行对应的操作。

根据处理结果,若处理结果为校验成功,则将表单数据进行提交存储处理,并返回客户端提交存储处理的结果。若处理结果为校验失败,则返回客户端验证失败提示,用户可以在客户端的前端表单页面对表单数据重新进行修改后,提交新的表单数据的表单提交请求。

从接收到客户端再次触发的携带有表单数据的表单提交请求,到根据处理结果执行对应的操作,本实施例可以从后端缓存可以直接获取到存储的表单数据的处理结果,进行提交存储处理,大大缩短前端表单页面处于等待状态的时间,对于用户而言,其感知到的响应时间大大缩短,响应时间变为获取存储的表单数据的处理结果和进行提交存储处理的时间,用户体验效果良好。

根据本发明实施例提供的表单页面响应处理方法,接收客户端触发的表单提交请求;开启主线程和至少一个子线程并发对请求进行处理,并对主线程执行处理的时间进行监控;若执行处理的时间超过处理响应时间阈值,则中断主线程的处理,向客户端返回再提交提示信息;接收客户端再次触发的表单提交请求;判断至少一个子线程是否已完成处理,若是,则根据至少一个子线程的处理结果执行对应的操作。基于本发明实施例将表单页面响应处理时间过长造成用户等待时间过长,体验不佳等问题进行改善,表单页面的响应处理通过监控处理响应时间阈值,及时反馈给用户提示信息,减少用户等待时间。对于表单提交请求的处理,后端开启主线程和至少一个子线程并发执行,使处理所花费时间对用户透明,便于在接收客户端再次触发的表单提交请求时,可以快速响应提交请求进行处理,从而可以实现快速处理,也方便快速反馈用户表单提交请求的处理结果,大大改善用户等待表单提交请求时间过长的不良体验。

图2示出了根据本发明实施例一个实施例的表单页面响应处理装置的结构框图,如图2所示,该装置包括:

第一接收模块210适于:接收客户端触发的表单提交请求;

处理模块220适于:由开启主线程和至少一个子线程并发对请求进行处理,并对主线程执行处理的时间进行监控;若执行处理的时间超过验证响应时间阈值,则中断主线程的校验处理,向客户端返回再提交提示信息;

第二接收模块230适于:接收客户端再次触发的表单提交请求;

判断模块240适于:判断至少一个子线程是否已完成处理;

执行模块250适于:若判断模块240判断至少一个子线程已完成处理,则根据至少一个子线程的处理结果执行对应的操作。

可选地,装置还包括:存储模块260适于:由至少一个子线程继续执行处理,在至少一个子线程执行完成处理后,将处理结果存储在后端缓存中。

可选地,表单提交请求携带有表单数据;判断模块240进一步适于:判断接收的客户端再次触发的表单提交请求中携带的表单数据与后端缓存中的表单数据是否相同;若是,判断至少一个子线程已完成处理。

可选地,执行模块250进一步适于:若处理结果为校验成功,则将表单提交请求携带的表单数据进行提交存储处理并返回客户端处理结果;若处理结果为校验失败,则返回客户端验证失败提示。

以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。

根据本发明实施例提供的表单页面响应处理装置,将表单页面响应处理时间过长造成用户等待时间过长,体验不佳等问题进行改善,表单页面的响应处理通过监控处理响应时间阈值,及时反馈给用户提示信息,减少用户等待时间。对于表单数据的处理,后端开启主线程和至少一个子线程并发执行,使处理所花费时间对用户透明,便于在接收客户端再次触发的携带有表单数据的表单提交请求时,可以快速响应提交请求进行处理,从而可以实现快速处理,也方便快速反馈用户表单提交请求的处理结果,大大改善用户等待表单提交请求时间过长的不良体验。

本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,可执行指令可执行上述任意方法实施例中的表单页面响应处理方法。

图3示出了根据本发明实施例的一种计算设备的结构示意图,本发明实施例的具体实施例并不对计算设备的具体实现做限定。

如图3所示,该计算设备可以包括:处理器(processor)302、通信接口(communicationsinterface)304、存储器(memory)306、以及通信总线308。

其中:

处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。

通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器302,用于执行程序310,具体可以执行上述表单页面响应处理方法实施例中的相关步骤。

具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。

处理器302可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序310具体可以用于使得处理器302执行上述任意方法实施例中的表单页面响应处理方法。程序310中各步骤的具体实现可以参见上述表单页面响应处理实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明实施例进行说明而不是对本发明实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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