CN109783183A - 请求处理方法、装置、电子设备及存储介质 - Google Patents
请求处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109783183A CN109783183A CN201910120084.5A CN201910120084A CN109783183A CN 109783183 A CN109783183 A CN 109783183A CN 201910120084 A CN201910120084 A CN 201910120084A CN 109783183 A CN109783183 A CN 109783183A
- Authority
- CN
- China
- Prior art keywords
- dialog box
- request
- display
- queue
- mode
- 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.)
- Granted
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本公开是关于一种请求处理方法、装置、电子设备及存储介质,属于信息处理领域。所述方法包括:当接收到第一对话框显示请求时,将第一对话框显示请求存储到请求队列的队尾;在第二模态对话框处于显示状态时,检测目标事件的发生情况;当检测到发生所述目标事件时,关闭第二模态对话框,从所述请求队列中移除第二对话框显示请求;根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。本公开可以保证并发的模态对话框显示请求被依次处理,各个模态对话框显示请求对应的业务流程能够被正常执行,避免了部分业务流程的静默失败或阻塞,提高了模态对话框显示请求的处理效果。
Description
技术领域
本公开涉及信息处理领域,尤其涉及一种请求处理方法、装置、电子设备及存储介质。
背景技术
对话框是一种特殊的视窗,用来在用户界面中向用户展示信息,或者在需要的时候获得用户的响应。对话框可以分为模态对话框(又叫做模式对话框)和非模态对话框(又叫做无模式对话框)两种,非模态对话框是指在显示非模态对话框时,用户可以对非模态对话框以外的对象进行操作;模态对话框是指在显示模态对话框时,用户只能对模态对话框内的对象进行操作,在用户想要对模态对话框以外的对象进行操作时,必须先将模态对话框关闭。
相关技术中,电子设备在接收到第一模态对话框显示(弹出)请求时,显示第一模态对话框,在显示第一模态对话框的过程中,如果电子设备接收到第二模态对话框显示请求,则显示第二模态对话框,且新显示的第二模态对话框会取代之前显示的第一模态对话框,用户只能对第二模态对话框进行操作,无法对第一模态对话框进行操作。
上述技术在接收到模态对话框显示请求时,会立即显示对应的模态对话框,最新显示的模态对话框会取代之前显示的模态对话框,用户无法对之前显示的模态对话框进行操作,造成之前显示的模态对话框所对应的业务流程静默失败或阻塞,模态对话框显示请求的处理效果差。
发明内容
本公开提供一种请求处理方法、装置、电子设备及存储介质,能够克服模态对话框显示请求的处理效果差的问题。
根据本公开实施例的第一方面,提供一种请求处理方法,包括:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
在一种可能实现方式中,所述在第二模态对话框处于显示状态时,检测目标事件的发生情况,包括:
当所述请求队列中对话框显示请求的数量大于1时,执行检测目标事件的发生情况的步骤。
在一种可能实现方式中,所述当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾之后,所述方法还包括:
在所述第二模态对话框未处于显示状态时,根据所述第一对话框显示请求,显示所述第一模态对话框。
在一种可能实现方式中,所述在所述第二模态对话框未处于显示状态时,根据所述第一对话框显示请求,显示所述第一模态对话框,包括:
当所述请求队列中对话框显示请求的数量等于1时,执行显示所述第一模态对话框的步骤。
在一种可能实现方式中,所述从所述请求队列中移除所述第二对话框显示请求之后,所述方法还包括:
当所述第二对话框显示请求携带回调函数时,调用所述回调函数,将反馈信息作为参数传入所述回调函数,所述反馈信息包括用户交互信息和对话框关闭信息中至少一项,所述用户交互信息用于指示所述第二模态对话框的显示过程中用户对所述第二模态对话框的操作行为,所述对话框关闭信息用于指示所述第二模态对话框已关闭。
在一种可能实现方式中,所述根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框,包括:
在当前时刻距离所述回调函数调用时刻的时间间隔为预设时间间隔时,确定所述请求队列中对话框显示请求的数量;
当所述请求队列中对话框显示请求的数量大于0时,执行根据所述请求队列中位于队首的对话框显示请求,显示对应的模态对话框的步骤。
在一种可能实现方式中,所述检测到发生所述目标事件,包括:
检测到对所述第二模态对话框的关闭操作;或,
检测到所述第二模态对话框的显示时长等于预设时长。
在一种可能实现方式中,所述方法还包括:
当接收到任一对话框显示请求时,为所述任一对话框显示请求生成唯一标识。
在一种可能实现方式中,所述方法还包括:
当检测到用于触发任一模态对话框关闭的事件时,生成对话框关闭指令,所述对话框关闭指令中携带所述任一模态对话框所对应的对话框显示请求的唯一标识。
在一种可能实现方式中,所述当检测到目标事件时,关闭所述第二模态对话框,包括:
当所述对话框关闭指令中携带的唯一标识与所述第二对话框显示请求的唯一标识相同时,执行关闭所述第二模态对话框的步骤。
在一种可能实现方式中,所述生成对话框关闭指令之后,所述方法还包括:
当所述对话框关闭指令中携带的唯一标识与所述第二对话框显示请求的唯一标识不同时,忽略所述对话框关闭指令。
根据本公开实施例的第二方面,提供一种请求处理装置,包括:
存储模块,被配置为当接收到第一对话框显示请求时,执行将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
检测模块,被配置为在第二模态对话框处于显示状态时,执行检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
关闭模块,被配置为当检测到发生所述目标事件时,执行关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
显示模块,被配置为执行根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
在一种可能实现方式中,所述检测模块被配置为当所述请求队列中对话框显示请求的数量大于1时,执行检测目标事件的发生情况的步骤。
在一种可能实现方式中,所述显示模块还被配置为在所述第二模态对话框未处于显示状态时,执行根据所述第一对话框显示请求,显示所述第一模态对话框。
在一种可能实现方式中,所述显示模块被配置为当所述请求队列中对话框显示请求的数量等于1时,执行显示所述第一模态对话框的步骤。
在一种可能实现方式中,所述装置还包括:
调用模块,被配置为当所述第二对话框显示请求携带回调函数时,执行调用所述回调函数,将反馈信息作为参数传入所述回调函数,所述反馈信息包括用户交互信息和对话框关闭信息中至少一项,所述用户交互信息用于指示所述第二模态对话框的显示过程中用户对所述第二模态对话框的操作行为,所述对话框关闭信息用于指示所述第二模态对话框已关闭。
在一种可能实现方式中,所述显示模块被配置为执行:
在当前时刻距离所述回调函数调用时刻的时间间隔为预设时间间隔时,确定所述请求队列中对话框显示请求的数量;
当所述请求队列中对话框显示请求的数量大于0时,执行根据所述请求队列中位于队首的对话框显示请求,显示对应的模态对话框的步骤。
在一种可能实现方式中,所述检测模块被配置为检测到对所述第二模态对话框的关闭操作;或,检测到所述第二模态对话框的显示时长等于预设时长。
在一种可能实现方式中,所述装置还包括:
生成模块,被配置为当接收到任一对话框显示请求时,执行为所述任一对话框显示请求生成唯一标识。
在一种可能实现方式中,所述生成模块还被配置为当检测到用于触发任一模态对话框关闭的事件时,执行生成对话框关闭指令,所述对话框关闭指令中携带所述任一模态对话框所对应的对话框显示请求的唯一标识。
在一种可能实现方式中,所述关闭模块被配置为当所述对话框关闭指令中携带的唯一标识与所述第二对话框显示请求的唯一标识相同时,执行关闭所述第二模态对话框的步骤。
在一种可能实现方式中,所述关闭模块还被配置为当所述对话框关闭指令中携带的唯一标识与所述第二对话框显示请求的唯一标识不同时,执行忽略所述对话框关闭指令。
根据本公开实施例的第三方面,提供了一种电子设备,包括:
一个或多个处理器;
用于存储一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
根据本公开实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行下述请求处理方法:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
根据本公开实施例的第五方面,提供一种应用程序产品,当所述应用程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行下述请求处理方法:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
本公开的实施例提供的技术方案可以包括以下有益效果:通过在接收到模态对话框显示请求时,将模态对话框显示请求存储到请求队列中,如果当前有正在显示的模态对话框,则当前接收到的对话框显示请求不会立即被处理,需要等待请求队列中位于队首的对话框显示请求处理完成后,再依次处理下一个对话框显示请求,这样可以保证并发的模态对话框显示请求被依次处理,各个模态对话框显示请求对应的业务流程能够被正常执行,避免了部分业务流程的静默失败或阻塞,提高了模态对话框显示请求的处理效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种请求处理方法的流程图。
图2是根据一示例性实施例示出的一种请求处理方法的流程图。
图3是根据一示例性实施例示出的一种请求队列的示意图。
图4是根据一示例性实施例示出的一种对话框显示请求的结构示意图。
图5是根据一示例性实施例示出的一种请求处理方法的框架图。
图6是根据一示例性实施例示出的一种请求处理方法的执行流程的示意图。
图7是根据一示例性实施例示出的一种请求处理装置的框图。
图8是根据一示例性实施例示出的一种请求处理装置的框图。
图9是根据一示例性实施例示出的一种请求处理装置的框图。
图10是根据一示例性实施例示出的一种电子设备1000的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种请求处理方法的流程图,如图1所示,请求处理方法用于电子设备中,包括以下步骤:
在步骤S11中,当接收到第一对话框显示请求时,将该第一对话框显示请求存储到请求队列的队尾,该请求队列用于按照接收时间的先后顺序存储对话框显示请求,该第一对话框显示请求用于显示第一模态对话框。
在步骤S12中,在第二模态对话框处于显示状态时,检测目标事件的发生情况,该目标事件为用于触发该第二模态对话框关闭的事件,该第二模态对话框根据该请求队列中位于队首的第二对话框显示请求显示。
在步骤S13中,当检测到发生该目标事件时,关闭该第二模态对话框,从该请求队列中移除该第二对话框显示请求。
在步骤S14中,根据该请求队列中移除第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
本公开实施例提供的方法,通过在接收到模态对话框显示请求时,将模态对话框显示请求存储到请求队列中,如果当前有正在显示的模态对话框,则当前接收到的对话框显示请求不会立即被处理,需要等待请求队列中位于队首的对话框显示请求处理完成后,再依次处理下一个对话框显示请求,这样可以保证并发的模态对话框显示请求被依次处理,各个模态对话框显示请求对应的业务流程能够被正常执行,避免了部分业务流程的静默失败或阻塞,提高了模态对话框显示请求的处理效果。
在一种可能实现方式中,该在第二模态对话框处于显示状态时,检测目标事件的发生情况,包括:
当该请求队列中对话框显示请求的数量大于1时,执行检测目标事件的发生情况的步骤。
在一种可能实现方式中,该当接收到第一对话框显示请求时,将该第一对话框显示请求存储到请求队列的队尾之后,该方法还包括:
在该第二模态对话框未处于显示状态时,根据该第一对话框显示请求,显示该第一模态对话框。
在一种可能实现方式中,该在该第二模态对话框未处于显示状态时,根据该第一对话框显示请求,显示该第一模态对话框,包括:
当该请求队列中对话框显示请求的数量等于1时,执行显示该第一模态对话框的步骤。
在一种可能实现方式中,该从该请求队列中移除该第二对话框显示请求之后,该方法还包括:
当该第二对话框显示请求携带回调函数时,调用该回调函数,将反馈信息作为参数传入该回调函数,该反馈信息包括用户交互信息和对话框关闭信息中至少一项,该用户交互信息用于指示该第二模态对话框的显示过程中用户对该第二模态对话框的操作行为,该对话框关闭信息用于指示该第二模态对话框已关闭。
在一种可能实现方式中,该根据请求队列中移除该第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框,包括:
在当前时刻距离该回调函数调用时刻的时间间隔为预设时间间隔时,确定该请求队列中对话框显示请求的数量;
当该请求队列中对话框显示请求的数量大于0时,执行根据该请求队列中位于队首的对话框显示请求,显示对应的模态对话框的步骤。
在一种可能实现方式中,该检测到发生该目标事件,包括:
检测到对该第二模态对话框的关闭操作;或,
检测到该第二模态对话框的显示时长等于预设时长。
在一种可能实现方式中,该方法还包括:
当接收到任一对话框显示请求时,为该任一对话框显示请求生成唯一标识。
在一种可能实现方式中,该方法还包括:
当检测到用于触发任一模态对话框关闭的事件时,生成对话框关闭指令,该对话框关闭指令中携带该任一模态对话框所对应的对话框显示请求的唯一标识。
在一种可能实现方式中,该当检测到目标事件时,关闭该第二模态对话框,包括:
当该对话框关闭指令中携带的唯一标识与该第二对话框显示请求的唯一标识相同时,执行关闭该第二模态对话框的步骤。
在一种可能实现方式中,该生成对话框关闭指令之后,该方法还包括:
当该对话框关闭指令中携带的唯一标识与该第二对话框显示请求的唯一标识不同时,忽略该对话框关闭指令。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本公开实施例中模态对话框的类型可以是web(网页)自定义模态对话框(Dialog),web自定义模态对话框在视觉交互上具有很大的灵活性与定制性,可以实现定制化的交互选项,显示图片等多媒体信息,满足“自动关闭”等个性化控制需求。本公开基于web自定义模态对话框,可以继承web自定义模态对话框在视觉交互上的优越性。虽然web自定义模态对话框在视觉交互上具有很大的优越性,但相关技术普遍不能响应并发的对话框显示请求,容易造成部分业务流程的静默失败或者阻塞,为了解决此问题,本公开以请求队列的形式缓存并发的对话框显示请求,在适当的时机将请求队列中的请求按照先后次序进行处理,能够很好的响应并发的对话框显示请求,具体过程参见图2对应的实施例。
图2是根据一示例性实施例示出的一种请求处理方法的流程图,如图2所示,请求处理方法用于电子设备中,包括以下步骤:
在步骤S21中,当接收到第一对话框显示请求时,将该第一对话框显示请求存储到请求队列的队尾,该请求队列用于按照接收时间的先后顺序存储对话框显示请求,该第一对话框显示请求用于显示第一模态对话框。
其中,请求队列可以是一个FIFO(First Input First Output,先入先出)的单向队列,如图3所示,提供了一种请求队列的示意图,该请求队列中位于队首的请求的接收时间先于请求队列中的其他请求,位于队尾的请求的接收时间后于请求队列中的其他请求。请求队列中位于队首的请求对应当前正在显示的模态对话框,除队首以外的剩余请求则对应等待显示的模态对话框,在当前显示的模态对话框关闭时,电子设备可以将其对应的请求从请求队列中移除。
本公开实施例中,电子设备每接收到一个对话框显示请求,则可以将当前接收到的对话框显示请求推送到请求队列的队尾。对话框显示请求可以由用户操作触发,例如,该用户操作可以是对界面上交互控件的点击操作,当然,对话框显示请求也可以由系统自动触发,本公开实施例对触发对话框显示请求的方式不做限定。
为了便于描述,将电子设备当前接收到的对话框显示请求称为第一对话框显示请求,其对应的模态对话框称为第一模态对话框。电子设备在接收到该第一对话框显示请求时,可能当前已经显示有一个模态对话框,如第二模态对话框,该情况下,相关技术会直接处理第一对话框显示请求,显示第一模态对话框,这样就会导致第一模态对话框取代第二模态对话框,用户无法对第二模态对话框进行操作,导致部分业务流程的静默失败或阻塞。而本公开中,电子设备会先判断当前是否显示有第二模态对话框,如果当前显示有第二模态对话框,则不对该第一对话框显示请求立即处理,而是执行步骤S22至步骤S24;如果当前未显示有第二模态对话框,则对该第一对话框显示请求立即处理,也即是执行步骤S25。
在一种可能实现方式中,当接收到任一对话框显示请求时,电子设备可以为该任一对话框显示请求生成唯一标识,该唯一标识用于唯一标识该任一对话框显示请求。相应地,电子设备可以为当前接收到的第一对话框显示请求,生成一个唯一标识,该唯一标识用于唯一标识该第一对话框显示请求。
另外,对于每个对话框显示请求,电子设备还可以将为该对话框显示请求生成的唯一标识,存储于该对话框显示请求中,如图4所示,提供了一种对话框显示请求的结构示意图,每个对话框显示请求可以由唯一标识(id)、回调函数(callback)和对话框数据(dialogData)组成。其中,该对话框数据可以包括模态对话框的尺寸数据和交互控件数据。需要说明的是,图4仅是对话框显示请求的一个示例,可以理解的是,每个对话框显示请求可以仅包括对话框数据,也可以仅包括对话框数据和唯一标识,还可以仅包括对话框数据和回调函数。
在步骤S22中,在第二模态对话框处于显示状态时,检测目标事件的发生情况,该目标事件为用于触发该第二模态对话框关闭的事件,该第二模态对话框根据该请求队列中位于队首的第二对话框显示请求显示。
本公开实施例中,电子设备依次处理请求队列中的各个对话框显示请求,一个请求处理完后,将该请求从请求队列中移除,再处理下一个请求,也即是,移除上一个请求后请求队列中位于队首的请求。因此,如果当前显示有一个模态对话框,则该模态对话框对应请求队列中当前位于队首的对话框显示请求,为了便于描述,将当前显示的模态对话框称为第二模态对话框,将该第二模态对话框对应的请求称为第二对话框显示请求。
相应地,如果第二模态对话框处于显示状态,也即是,电子设备当前显示有第二模态对话框,则该请求队列中至少会存在该第二模态对话框对应的第二对话框显示请求和当前接收到的第一对话框显示请求,该情况下请求队列中对话框显示请求的数量大于1,也即是,请求队列的队列长度大于1。在一种可能实现方式中,该步骤S22可以包括:当该请求队列中对话框显示请求的数量大于1时,执行检测目标事件的发生情况的步骤。
电子设备在接收到第一对话框显示请求时,可以检查请求队列的队列长度,也即是,确定请求队列中对话框显示请求的数量,根据请求队列中对话框显示请求的数量,确定当前是否显示有第二模态对话框。如果请求队列中对话框显示请求的数量大于1,则表明当前有正在显示的模态对话框,电子设备刚接收到的第一对话框显示请求不能立即被处理,需等待当前显示的第二模态对话框关闭,对此,电子设备可以检测是否发生目标事件。通过将当前接收到的对话框显示请求存储在请求队列中后,确定请求队列中对话框显示请求的数量,从而可以准确地判断是否立即处理当前接收到的对话框显示请求。
其中,目标事件可以是用户的操作事件,如用户对第二模态对话框进行关闭操作的事件,目标事件也可以是定时器的到时事件,如该第二模态对话框的显示时长等于预设时长的事件。
在步骤S23中,当检测到发生该目标事件时,关闭该第二模态对话框,从该请求队列中移除该第二对话框显示请求。
本公开实施例中,当电子设备检测到发生目标事件时,电子设备可以立即关闭该第二模态对话框,同时,为了便于电子设备有序地对下一个对话框显示请求进行处理,电子设备可以从请求队列中移除第二对话框显示请求,则第二对话框显示请求的下一个对话框显示请求在请求队列中位于队首。
在一种可能实现方式中,检测到发生该目标事件包括:检测到对该第二模态对话框的关闭操作;或,检测到该第二模态对话框的显示时长等于预设时长。通过在检测到用户关闭模态对话框的操作时关闭模态对话框,可以保证用户的操作能够得到及时响应,通过在检测到对话框的自动关闭事件时关闭模态对话框,可以满足自动关闭对话框的个性化控制需求。
本公开实施例中,对话框显示请求还可以携带回调函数(callback),该回调函数可以用于通知当前对话框的状态已经发生变化(如对话框已关闭),电子设备可以继续进行后续的业务流程。在一种可能实现方式中,电子设备从该请求队列中移除该第二对话框显示请求之后,当该第二对话框显示请求携带回调函数时,电子设备可以调用该回调函数,将反馈信息作为参数传入该回调函数,该反馈信息包括用户交互信息和对话框关闭信息中至少一项,该用户交互信息用于指示该第二模态对话框的显示过程中用户对该第二模态对话框的操作行为,该对话框关闭信息用于指示该第二模态对话框已关闭。
其中,该用户交互信息可以是用户在第二模态对话框中输入的信息,也可以是第二模态对话框中被用户选择的选项信息或被用户点击的按钮信息等,本公开实施例对此不做限定。
在一种可能实现方式中,当检测到用于触发任一模态对话框关闭的事件时,电子设备可以生成对话框关闭指令,该对话框关闭指令中携带该任一模态对话框所对应的对话框显示请求的唯一标识。以第二模态对话框为例,当电子设备检测到用户对第二模态对话框的关闭操作时,电子设备可以生成对话框关闭指令,将第二模态对话框所对应的第二对话框显示请求的唯一标识携带在对话框关闭指令中,当然,该对话框关闭指令中还可以携带额外信息。
相应地,在一种可能实现方式中,该当检测到目标事件时,关闭该第二模态对话框,包括:当该对话框关闭指令中携带的唯一标识与该第二对话框显示请求的唯一标识相同时,执行关闭该第二模态对话框的步骤。另外,当该对话框关闭指令中携带的唯一标识与该第二对话框显示请求的唯一标识不同时,电子设备可以忽略该对话框关闭指令。
电子设备在接收到对话框关闭指令后,可以获取请求队列中位于队首的对话框显示请求,也即是,当前正在显示的模态对话框所对应的对话框显示请求,判断对话框关闭指令中携带的唯一标识与该对话框显示请求的唯一标识是否匹配。如果匹配,则执行当前接收到的对话框关闭指令,关闭对应的模态对话框,将该模态对话框对应的对话框显示请求从请求队列中移除;如果不匹配,则忽略当前接收到的对话框关闭指令即可。通过在接收到对话框关闭指令时,判断对话框关闭指令中携带的唯一标识与当前对话框显示请求(当前显示的模态对话框所对应的对话框显示请求)的唯一标识是否匹配,在匹配时才关闭,可以避免重复的关闭指令对不相关的对话框显示请求造成意外的干扰,导致对话框不正确的关闭。
例如,一个模态对话框本来是可以自动关闭的,但用户又手动进行了关闭操作,自动关闭行为和手动关闭行为的时间间隔很短,就有可能会触发两次对话框关闭指令,又或者,用户在很短的时间间隔内重复点击了对同一对话框的关闭按钮,则也可能会触发重复的对话框关闭指令,该重复的对话框关闭指令是针对同一对话框的,电子设备在根据第一次接收到的对话框关闭指令关闭对应的对话框后,可能已经处理了新的对话框显示请求,显示了新的对话框,如果再次接收到针对已关闭对话框的对话框关闭指令,通过唯一标识的匹配,电子设备可以得知该对话框关闭指令并不是针对当前显示的模态对话框,因此可以直接忽略。
在步骤S24中,根据该请求队列中移除该第二对话框显示请求移除后位于队首的对话框显示请求,显示对应的模态对话框。
本公开实施例中,电子设备将第二对话框显示请求从请求队列中移除后,第二对话框显示请求的下一个对话框显示请求成为请求队列的队首,此时,电子设备可以对请求队列中位于队首的该对话框显示请求进行处理,显示其对应的模态对话框,具体地,电子设备可以基于该对话框显示请求中携带的对话框数据进行渲染,得到对应的模态对话框。
考虑到在第二模态对话框的显示过程中,用户可能对该第二模态对话框进行了操作,该操作除了触发电子设备关闭第二模态对话框以外,还可以触发电子设备执行相应的业务流程,因此,电子设备在调用被移除的第二对话框显示请求中的回调函数后,还需要执行相应的业务流程,为了优先执行该业务流程,电子设备可以等待一个事件循环(eventloop)周期,再处理请求队列中的对话框显示请求。其中,event loop是JavaScript引擎中的一种现象,代表单线程模型的引擎始终在一个死循环中不断处理到来的各种任务。
相应地,在一种可能实现方式中,该步骤S24可以包括:在当前时刻距离该回调函数调用时刻的时间间隔为预设时间间隔时,确定该请求队列中对话框显示请求的数量;当该请求队列中对话框显示请求的数量大于0时,执行根据该请求队列中位于队首的对话框显示请求,显示对应的模态对话框的步骤。
其中,该预设时间间隔即为一个事件循环周期对应的时间间隔。在等到下一个事件循环周期到来之后,电子设备可以检测请求队列中是否还有等待处理的对话框显示请求,如果有,则立即对其进行处理。具体地,如果请求队列中仅有一个对话框显示请求,则电子设备可以直接对该对话框显示请求进行处理,如果请求队列中还有一个以上的对话框显示请求,则电子设备可以对位于队首的对话框显示请求进行处理。
针对对话框显示请求中携带用于显示该模态对话框的对话框数据,对话框数据包括该模态对话框的尺寸数据和交互控件数据,相应地,电子设备根据对话框显示请求,显示模态对话框的过程可以包括:基于对话框显示请求中的对话框数据进行渲染,得到模态对话框。电子设备可以基于模态对话框的尺寸数据,显示相应尺寸的模态对话框,并基于模态对话框的交互控件数据,显示模态对话框中的各个交互控件。
在步骤S25中,在该第二模态对话框未处于显示状态时,根据该第一对话框显示请求,显示该第一模态对话框。
本公开实施例中,在当前接收到第一对话框显示请求时,如果第二模态对话框未处于显示状态,也即是,电子设备当前未显示有第二模态对话框,则该请求队列中仅存在当前接收到的第一对话框显示请求,该情况下请求队列中对话框显示请求的数量等于1,也即是,请求队列的队列长度等于1。在一种可能实现方式中,该步骤S25可以包括:当该请求队列中对话框显示请求的数量等于1时,执行显示该第一模态对话框的步骤。
电子设备在接收到第一对话框显示请求时,可以检查请求队列的队列长度,也即是,确定请求队列中对话框显示请求的数量,如果请求队列中对话框显示请求的数量等于1,则表明当前没有任何模态对话框处于显示状态,请求队列中仅有一个请求是电子设备刚接收到,该请求也即是第一对话框显示请求需要被立即处理。
需要说明的是,该步骤S25为可选步骤,也即是,本公开实施例提供的请求处理方法可以仅包括步骤S21至步骤S24,即可实现对模态对话框显示请求的并发响应,提高模态对话框显示请求的处理效果。
为了便于更好的理解本公开实施例提供的上述技术方案,下面结合图5,从电子设备中各个功能模块的角度,对上述技术方案的实现过程进行说明。参见图5,提供了一种请求处理方法的框架图,如图5所示,电子设备中可以包含四个模块,分别是业务模块、缓存模块、调度模块与渲染模块。
(1)渲染模块:渲染模块为一套与具体业务相关的视觉组件,使用传统的CSS(Cascading Style Sheets,层叠样式表)、HTML(Hyper Text Markup Language,超文本标记语言)与JavaScript语言实现,支持当今绝大多数现代浏览器。其具体特征体现在:
1.以不定透明度的全尺寸HTML元素遮挡页面上的(几乎)全部固有元素,阻止固有元素响应屏幕操作,同时可以阻止页面整体的滚动响应与键盘响应;
2.以通常小于屏幕宽高尺寸的HTML元素展现相关用户交互信息,比如提示文字、图片以及可供交互的按钮等控件,模拟原生对话框的交互手段;
3.用户可通过与相关控件的触控或点击等交互方式,发出关闭此“对话框”的指令,并有可能带有不定的指令负载信息,比如输入框的内容、不同的按钮标识、选项等等。
该渲染模块的实现原理与web自定义模态对话框的实现原理一致,在此不做赘述。
(2)业务模块:业务模块是弹出对话框的诉求方,同时也是对话框人机交互结果的最终接收方,是整个系统的激活入口和最终反馈流向。
业务模块负责发起对话框显示请求,每个请求中包含了显示指定类型对话框的所有必要信息,如果业务模块需要关心对话框的交互结果,则可以在请求中携带一个回调函数。
(3)缓存模块和调度模块:缓存模块和调度模块是本公开的核心组成部分,是对话框系统有能力响应并发请求的关键所在。
缓存模块负责存储业务模块发起的各个对话框显示请求,还可以为每一个请求生成一个唯一标识,存储于每个请求中。
调度模块负责在适当的时机将缓存模块队列中的请求按照先后次序发送到渲染模块,请求渲染模块进行渲染,也即是,显示(弹出)对话框,一旦渲染模块接收到一个请求,就会在视觉交互上展示该请求中的对话框数据所包含的信息,从而达到显示对话框的目的。
参见图6,提供了一种请求处理方法的执行流程的示意图,如图6所示,调度模块可以存在两条执行流程,在图5中分别对应与业务模块和渲染模块的交互动作,也即是,调度模块的逻辑执行流必然是由业务模块或者渲染模块所唤起的。
第一条执行流,当业务模块向调度模块发起一次对话框显示请求时,调度模块可以将请求推送到缓存模块的队尾,并检查请求队列的队列长度。如果队列长度等于1,那么意味着之前并没有任何对话框处于显示状态,队列中仅有的一个请求是刚刚接收到的,该弹出请求需要被立即执行,于是调度模块可以将位于队首的请求发送到渲染模块,展现给用户,以进行人机交互。如果队列长度大于1,意味着当前有正在显示的对话框,刚刚接收到的请求不能被立即处理,需要等待前一个请求被执行完成,此时该执行流结束。
第二条执行流,调度模块接收到来自渲染模块的反馈,这种反馈可能由用户的操作发起,也可能由定时器发起,反馈内容至少要包含对当前正在显示的对话框的关闭指令,该关闭指令中可以携带当前请求的id(唯一标识),还允许携带额外信息。
调度模块先是获取请求队列中位于队首的对话框显示请求(为了便于描述,称为队首请求),判断关闭指令中的id与队首请求中的id是否匹配,以避免渲染模块重复反馈的关闭指令对不相关的请求(一般是后续请求)造成意外的干扰(如不正确的关闭)。如果id是匹配的,则将其从队列中移除,否则忽略即可。
另外,如果被移除的队首请求中包含回调函数,则调度模块可以调用它,并将渲染模块的反馈信息作为参数传入,由于回调函数是由业务模块生成的,因此可以确保业务模块能够接收得到。
这样就完成了一次业务模块请求-》缓存模块暂存-》调度模块控制-》渲染模块展现-》渲染模块反馈-》调度模块接收-》缓存模块匹配-》业务模块回调的闭环操作。业务模块全程无需关心与渲染模块的交互,更逼近对话框工具化的根本特性,只不过获取对话框的反馈信息是异步的,可以通过回调机制,得知对话框状态的变化。
前一个请求被处理完成之后,在缓存模块中可能积压了更多的请求需要处理,理论上可缓存的请求数是没有上限的,但在实际的应用场景中可能很少有超过3个被积压的请求。
考虑到前一个请求被回调之后,其关联的业务流程可能有更重要的异步任务需要执行,包括由Promise()、setImmediate()、postMessage()、setTimeout()、setInterval()等方法发起的异步任务,如动画、定时器、网络请求等等,为了优先响应这些异步任务,调度模块会等待到下一个事件循环周期再去检查缓存模块的请求队列中是否还有未处理的请求。等到下一个事件循环周期(event loop)到来之后,调度模块可以立即检查缓存模块中队列的长度,判断是否存在正在等待中的请求,如果有,则立即将其发送到渲染模块,重新进入执行第一条执行流的逻辑。这样即保证了并发的对话框显示请求是依次被处理的,不会有丢弃、冲突或者抢占。
需要说明的是,此时队首请求可能已经在渲染模块中了,因为队首请求可能是刚刚被推送进来,就直接被发送到渲染模块了,因此需要保证第二次重复地将队首请求发送到渲染模块不会有任何副作用,即保证渲染过程是幂等的,即相同输入产出相同的输出。
上述技术方案支持并发的模态对话框控制,由于基于web自定义模态对话框,兼顾了自定义视觉交互能力,业务模块只需发起对话框显示请求,无需关心与渲染模块的交互,解耦业务流程与自定义模态对话框的视觉交互之间的关联关系,仅暴露给业务最简单的异步接口。
本公开基于Web自定义模态对话框实现,继承了Web自定义模态对话框在视觉交互上的优越性。通过将业务对显示对话框的诉求抽象为可见的结构化请求,如图4所示的对话框显示请求,并将请求聚合为有序的队列结构,以实现同步化的并发响应,满足了在业务中可能存在的多条控制流同时发起的对话框显示请求。同时,通过开启(请求显示)对话框与关闭对话框的id匹配机制,可以保证严格的闭环控制,使得自动(开启/关闭)行为与手动(开启/关闭)行为的并发更安全。另外,通过回调机制可以保证对话框显示请求发起和用户行为结果的闭环追踪,使得发起对话框显示请求的业务模块可以得知对话框交互结果。
本公开实施例提供的方法,通过在接收到模态对话框显示请求时,将模态对话框显示请求存储到请求队列中,如果当前有正在显示的模态对话框,则当前接收到的对话框显示请求不会立即被处理,需要等待请求队列中位于队首的对话框显示请求处理完成后,再依次处理下一个对话框显示请求,这样可以保证并发的模态对话框显示请求被依次处理,各个模态对话框显示请求对应的业务流程能够被正常执行,避免了部分业务流程的静默失败或阻塞,提高了模态对话框显示请求的处理效果。
图7是根据一示例性实施例示出的一种请求处理装置的框图。参照图7,该装置包括存储模块701,检测模块702、关闭模块703和显示模块704。
存储模块701被配置为当接收到第一对话框显示请求时,执行将该第一对话框显示请求存储到请求队列的队尾,该请求队列用于按照接收时间的先后顺序存储对话框显示请求,该第一对话框显示请求用于显示第一模态对话框;
检测模块702被配置为在第二模态对话框处于显示状态时,执行检测目标事件的发生情况,该目标事件为用于触发该第二模态对话框关闭的事件,该第二模态对话框根据该请求队列中位于队首的第二对话框显示请求显示;
关闭模块703被配置为当检测到发生该目标事件时,执行关闭该第二模态对话框,从该请求队列中移除该第二对话框显示请求;
显示模块704被配置为执行根据该请求队列中移除该第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
在一种可能实现方式中,该检测模块702被配置为当该请求队列中对话框显示请求的数量大于1时,执行检测目标事件的发生情况的步骤。
在一种可能实现方式中,该显示模块704还被配置为在该第二模态对话框未处于显示状态时,执行根据该第一对话框显示请求,显示该第一模态对话框。
在一种可能实现方式中,该显示模块704被配置为当该请求队列中对话框显示请求的数量等于1时,执行显示该第一模态对话框的步骤。
在一种可能实现方式中,参见图8,该装置还包括:
调用模块705,被配置为当该第二对话框显示请求携带回调函数时,执行调用该回调函数,将反馈信息作为参数传入该回调函数,该反馈信息包括用户交互信息和对话框关闭信息中至少一项,该用户交互信息用于指示该第二模态对话框的显示过程中用户对该第二模态对话框的操作行为,该对话框关闭信息用于指示该第二模态对话框已关闭。
在一种可能实现方式中,该显示模块704被配置为执行:
在当前时刻距离该回调函数调用时刻的时间间隔为预设时间间隔时,确定该请求队列中对话框显示请求的数量;
当该请求队列中对话框显示请求的数量大于0时,执行根据该请求队列中位于队首的对话框显示请求,显示对应的模态对话框的步骤。
在一种可能实现方式中,该检测模块702被配置为检测到对该第二模态对话框的关闭操作;或,检测到该第二模态对话框的显示时长等于预设时长。
在一种可能实现方式中,参见图9,该装置还包括:
生成模块706,被配置为当接收到任一对话框显示请求时,执行为该任一对话框显示请求生成唯一标识。
在一种可能实现方式中,该生成模块706还被配置为当检测到用于触发任一模态对话框关闭的事件时,执行生成对话框关闭指令,该对话框关闭指令中携带该任一模态对话框所对应的对话框显示请求的唯一标识。
在一种可能实现方式中,该关闭模块703被配置为当该对话框关闭指令中携带的唯一标识与该第二对话框显示请求的唯一标识相同时,执行关闭该第二模态对话框的步骤。
在一种可能实现方式中,该关闭模块703还被配置为当该对话框关闭指令中携带的唯一标识与该第二对话框显示请求的唯一标识不同时,执行忽略该对话框关闭指令。
本公开实施例中,通过在接收到模态对话框显示请求时,将模态对话框显示请求存储到请求队列中,如果当前有正在显示的模态对话框,则当前接收到的对话框显示请求不会立即被处理,需要等待请求队列中位于队首的对话框显示请求处理完成后,再依次处理下一个对话框显示请求,这样可以保证并发的模态对话框显示请求被依次处理,各个模态对话框显示请求对应的业务流程能够被正常执行,避免了部分业务流程的静默失败或阻塞,提高了模态对话框显示请求的处理效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10是根据一示例性实施例示出的一种电子设备1000的框图。该电子设备1000可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备1000还可能被称为用户设备、便携式电子设备、膝上型电子设备、台式电子设备等其他名称。
通常,电子设备1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本申请中方法实施例提供的请求处理方法。
在一些实施例中,电子设备1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头1006、音频电路1007、定位组件1008和电源1009中的至少一种。
外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它电子设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置电子设备1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在电子设备1000的不同表面或呈折叠设计;在再一些实施例中,显示屏1005可以是柔性显示屏,设置在电子设备1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。
定位组件1008用于定位电子设备1000的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1008可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源1009用于为电子设备1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、指纹传感器1014、光学传感器1015以及接近传感器1016。
加速度传感器1011可以检测以电子设备1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1012可以检测电子设备1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对电子设备1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1013可以设置在电子设备1000的侧边框和/或显示屏1005的下层。当压力传感器1013设置在电子设备1000的侧边框时,可以检测用户对电子设备1000的握持信号,由处理器1001根据压力传感器1013采集的握持信号进行左右手识别或快捷操作。当压力传感器1013设置在显示屏1005的下层时,由处理器1001根据用户对显示屏1005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1014用于采集用户的指纹,由处理器1001根据指纹传感器1014采集到的指纹识别用户的身份,或者,由指纹传感器1014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1014可以被设置电子设备1000的正面、背面或侧面。当电子设备1000上设置有物理按键或厂商Logo时,指纹传感器1014可以与物理按键或厂商Logo集成在一起。
光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制显示屏1005的显示亮度。具体地,当环境光强度较高时,调高显示屏1005的显示亮度;当环境光强度较低时,调低显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。
接近传感器1016,也称距离传感器,通常设置在电子设备1000的前面板。接近传感器1016用于采集用户与电子设备1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与电子设备1000的正面之间的距离逐渐变小时,由处理器1001控制显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与电子设备1000的正面之间的距离逐渐变大时,由处理器1001控制显示屏1005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图10中示出的结构并不构成对电子设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行下述请求处理方法:
当接收到第一对话框显示请求时,将该第一对话框显示请求存储到请求队列的队尾,该请求队列用于按照接收时间的先后顺序存储对话框显示请求,该第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,该目标事件为用于触发该第二模态对话框关闭的事件,该第二模态对话框根据该请求队列中位于队首的第二对话框显示请求显示;
当检测到发生该目标事件时,关闭该第二模态对话框,从该请求队列中移除该第二对话框显示请求;
根据该请求队列中移除该第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
例如,该非临时性计算机可读存储介质可以是ROM(Read-Only Memory,只读内存)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-OnlyMemory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种应用程序产品,当该应用程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行下述请求处理方法:
当接收到第一对话框显示请求时,将该第一对话框显示请求存储到请求队列的队尾,该请求队列用于按照接收时间的先后顺序存储对话框显示请求,该第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,该目标事件为用于触发该第二模态对话框关闭的事件,该第二模态对话框根据该请求队列中位于队首的第二对话框显示请求显示;
当检测到发生该目标事件时,关闭该第二模态对话框,从该请求队列中移除该第二对话框显示请求;
根据该请求队列中移除该第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种请求处理方法,其特征在于,包括:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
2.根据权利要求1所述的请求处理方法,其特征在于,所述在第二模态对话框处于显示状态时,检测目标事件的发生情况,包括:
当所述请求队列中对话框显示请求的数量大于1时,执行检测目标事件的发生情况的步骤。
3.根据权利要求1所述的请求处理方法,其特征在于,所述当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾之后,所述方法还包括:
在所述第二模态对话框未处于显示状态时,根据所述第一对话框显示请求,显示所述第一模态对话框。
4.根据权利要求3所述的请求处理方法,其特征在于,所述在所述第二模态对话框未处于显示状态时,根据所述第一对话框显示请求,显示所述第一模态对话框,包括:
当所述请求队列中对话框显示请求的数量等于1时,执行显示所述第一模态对话框的步骤。
5.根据权利要求1所述的请求处理方法,其特征在于,所述从所述请求队列中移除所述第二对话框显示请求之后,所述方法还包括:
当所述第二对话框显示请求携带回调函数时,调用所述回调函数,将反馈信息作为参数传入所述回调函数,所述反馈信息包括用户交互信息和对话框关闭信息中至少一项,所述用户交互信息用于指示所述第二模态对话框的显示过程中用户对所述第二模态对话框的操作行为,所述对话框关闭信息用于指示所述第二模态对话框已关闭。
6.根据权利要求5所述的请求处理方法,其特征在于,所述根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框,包括:
在当前时刻距离所述回调函数调用时刻的时间间隔为预设时间间隔时,确定所述请求队列中对话框显示请求的数量;
当所述请求队列中对话框显示请求的数量大于0时,执行根据所述请求队列中位于队首的对话框显示请求,显示对应的模态对话框的步骤。
7.根据权利要求1所述的请求处理方法,其特征在于,所述检测到发生所述目标事件,包括:
检测到对所述第二模态对话框的关闭操作;或,
检测到所述第二模态对话框的显示时长等于预设时长。
8.一种请求处理装置,其特征在于,包括:
存储模块,被配置为当接收到第一对话框显示请求时,执行将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
检测模块,被配置为在第二模态对话框处于显示状态时,执行检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
关闭模块,被配置为当检测到发生所述目标事件时,执行关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
显示模块,被配置为执行根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
10.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种请求处理方法,所述方法包括:
当接收到第一对话框显示请求时,将所述第一对话框显示请求存储到请求队列的队尾,所述请求队列用于按照接收时间的先后顺序存储对话框显示请求,所述第一对话框显示请求用于显示第一模态对话框;
在第二模态对话框处于显示状态时,检测目标事件的发生情况,所述目标事件为用于触发所述第二模态对话框关闭的事件,所述第二模态对话框根据所述请求队列中位于队首的第二对话框显示请求显示;
当检测到发生所述目标事件时,关闭所述第二模态对话框,从所述请求队列中移除所述第二对话框显示请求;
根据所述请求队列中移除所述第二对话框显示请求后位于队首的对话框显示请求,显示对应的模态对话框。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910120084.5A CN109783183B (zh) | 2019-02-18 | 2019-02-18 | 请求处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910120084.5A CN109783183B (zh) | 2019-02-18 | 2019-02-18 | 请求处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783183A true CN109783183A (zh) | 2019-05-21 |
CN109783183B CN109783183B (zh) | 2020-10-20 |
Family
ID=66503331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910120084.5A Active CN109783183B (zh) | 2019-02-18 | 2019-02-18 | 请求处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783183B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231964A (zh) * | 2019-06-12 | 2019-09-13 | 四川长虹电器股份有限公司 | 一种动态加载js资源时防止重复请求的方法 |
CN110990004A (zh) * | 2019-11-04 | 2020-04-10 | 厦门亿联网络技术股份有限公司 | 一种对话框的统一管理方法、装置及终端设备 |
CN112270455A (zh) * | 2020-12-22 | 2021-01-26 | 武汉源启科技股份有限公司 | 操作流程线路图显示方法及装置 |
CN113900564A (zh) * | 2021-09-28 | 2022-01-07 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
WO2023109561A1 (zh) * | 2021-12-17 | 2023-06-22 | 北京字跳网络技术有限公司 | 模态窗口的控制方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201511A (zh) * | 2016-07-08 | 2016-12-07 | 东软集团股份有限公司 | 创建模态对话框的方法及装置 |
CN106371824A (zh) * | 2016-08-23 | 2017-02-01 | 广州优视网络科技有限公司 | 便携式设备及应用程序弹出消息显示控制方法和装置 |
CN106502804A (zh) * | 2016-10-31 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种基于队列结构的弹窗展示方法和系统 |
-
2019
- 2019-02-18 CN CN201910120084.5A patent/CN109783183B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201511A (zh) * | 2016-07-08 | 2016-12-07 | 东软集团股份有限公司 | 创建模态对话框的方法及装置 |
CN106371824A (zh) * | 2016-08-23 | 2017-02-01 | 广州优视网络科技有限公司 | 便携式设备及应用程序弹出消息显示控制方法和装置 |
CN106502804A (zh) * | 2016-10-31 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种基于队列结构的弹窗展示方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231964A (zh) * | 2019-06-12 | 2019-09-13 | 四川长虹电器股份有限公司 | 一种动态加载js资源时防止重复请求的方法 |
CN110231964B (zh) * | 2019-06-12 | 2021-06-22 | 四川长虹电器股份有限公司 | 一种动态加载js资源时防止重复请求的方法 |
CN110990004A (zh) * | 2019-11-04 | 2020-04-10 | 厦门亿联网络技术股份有限公司 | 一种对话框的统一管理方法、装置及终端设备 |
CN110990004B (zh) * | 2019-11-04 | 2022-08-12 | 厦门亿联网络技术股份有限公司 | 一种对话框的统一管理方法、装置及终端设备 |
CN112270455A (zh) * | 2020-12-22 | 2021-01-26 | 武汉源启科技股份有限公司 | 操作流程线路图显示方法及装置 |
CN113900564A (zh) * | 2021-09-28 | 2022-01-07 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
WO2023109561A1 (zh) * | 2021-12-17 | 2023-06-22 | 北京字跳网络技术有限公司 | 模态窗口的控制方法、装置、设备及存储介质 |
US11966762B2 (en) | 2021-12-17 | 2024-04-23 | Beijing Zitiao Network Technology Co., Ltd. | Modal window control method and apparatus, device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN109783183B (zh) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783183A (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN108401124A (zh) | 视频录制的方法和装置 | |
US11574009B2 (en) | Method, apparatus and computer device for searching audio, and storage medium | |
CN109977333A (zh) | 网页显示方法、装置、计算机设备及存储介质 | |
CN110019929A (zh) | 网页内容的处理方法、装置及计算机可读存储介质 | |
CN111445901B (zh) | 音频数据获取方法、装置、电子设备及存储介质 | |
CN109803165A (zh) | 视频处理的方法、装置、终端及存储介质 | |
CN110198484A (zh) | 消息推送方法、装置及设备 | |
CN109346111B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN108848394A (zh) | 视频直播方法、装置、终端及存储介质 | |
CN109729378A (zh) | 信息处理方法、在直播平台中领取福利的方法及装置 | |
CN108762881A (zh) | 界面绘制方法、装置、终端及存储介质 | |
CN109302385A (zh) | 多媒体资源分享方法、装置及存储介质 | |
CN109068008A (zh) | 铃声设置方法、装置、终端及存储介质 | |
CN109147757A (zh) | 歌声合成方法及装置 | |
CN108806670B (zh) | 语音识别方法、装置及存储介质 | |
CN110362366A (zh) | 一种应用界面显示方法及装置 | |
CN110300274A (zh) | 视频文件的录制方法、装置及存储介质 | |
CN108900925A (zh) | 设置直播模板的方法和装置 | |
CN110119243A (zh) | 指令处理方法、装置、终端和存储介质 | |
CN110213308A (zh) | 一种解码视频数据的方法及装置 | |
CN109982129A (zh) | 短视频的播放控制方法、装置及存储介质 | |
CN110288689A (zh) | 对电子地图进行渲染的方法和装置 | |
CN110377784A (zh) | 歌单更新方法、装置、终端及存储介质 | |
CN110020306A (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 |