一种开关系统及开关模式实现方法技术方案

技术编号:15329299 阅读:110 留言:0更新日期:2017-05-16 13:00
本发明专利技术公开了一种开关系统及开关模式实现方法,基于JavaScript语言,涉及网络技术领域。该系统包括:控制模块、缓存队列、第一执行模块和第二执行模块;控制模块用于对网页的当前业务设置开关,并根据当前业务的相关业务的执行结果控制开关的状态;第一执行模块用于当开关打开时,依次接收当前业务的逻辑函数,并存入缓存队列中,当开关关闭时,执行正在接收的逻辑函数;第二执行模块用于无论开关处于打开或关闭的状态,均按照顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。本发明专利技术不但能提高当前业务的执行效率,而且极大地改善了代码的可维护性和可扩展性,提高网页的开发和维护效率,降低成本。

Switching system and switching mode realizing method

The invention discloses a switching system and a switching mode realizing method, which is based on JavaScript language and relates to the field of network technology. The system comprises a control module, a buffer queue, the first second execution module and execution module; the control module is used for switching on the current business settings page, and according to the control switch state results related business current service execution; the first execution module is used when the switch is opened, followed by receiving the current business logic functions, and stored in the cache in the queue, when the switch is closed, the execution logic function is received; second execution module used for either switch is open or closed, are executed in sequence number of logical functions in the buffer queue, and delete logical function has been executed. The invention not only improves the execution efficiency of the current business, but also greatly improves the maintainability and extensibility of the code, improves the development and maintenance efficiency of the web page, and reduces the cost.

【技术实现步骤摘要】
一种开关系统及开关模式实现方法本专利技术涉及网络
,具体是涉及一种开关系统及开关模式实现方法。
技术介绍
随着网络技术的不断发展,人们使用网页越来越频繁,对网页的要求也越来越高,为了满足网站的业务发展需求,网页提供的文本、图像、视频等信息,以及交互式服务内容需要不断更新,由此导致网页提供的服务内容日益复杂,因此,前端开发代码的高可维护性和可扩展性成为迫切需要解决的问题。JavaScript是一门广泛用于客户端的脚本语言,被世界上的绝大多数网站采用,也得到主流浏览器支持,例如Chrome、IE、FireFox、Safari和Opera。由于JavaScript是单线程语言,异步的编程模式让JavaScript代码变得很冗余而且难以维护,在大型应用中还要兼容复杂的判断逻辑,让JavaScript的代码更加难以维护和扩展。例如,在网络视频直播的某些业务中,用户必须登录服务器验证成功并获得授权后,才能正常运行这些业务中的逻辑函数,目前前端的方法是在初始化的时候业务先发送请求到服务器,待服务器响应正确的授权信息后再开始执行逻辑函数,按照JavaScript的基本语法必须使用异步的方式编写代码,逻辑函数必须在请求成功后的回调函数里被调用,代码耦合很深。如果业务需求发生变化,例如,发送用户的弹幕数据时,服务器响应正确的授权信息后还需要等待文档对象模型DOM(DocumentObjectModel)的延时操作时,则需要对现有的JavaScript代码进行大幅修改,造成代码的可维护性和可扩展性较差,网页的开发和维护效率低,成本高,对网站的业务造成不良影响,网页更新速度慢,用户平均浏览时间和交易量下降,用户粘性低。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的主要目的在于提供一种开关系统,本专利技术的另一目的在于提供一种开关模式实现方法,不但提高当前业务的执行效率,而且极大地改善了代码的可维护性和可扩展性,提高网页的开发和维护效率,降低成本。本专利技术提供一种开关系统,包括控制模块、缓存队列、第一执行模块和第二执行模块;所述控制模块用于对网页的当前业务设置开关,并根据当前业务的相关业务的执行结果控制开关的状态;所述第一执行模块用于当开关打开时,依次接收当前业务的逻辑函数,并存入缓存队列中,当开关关闭时,执行正在接收的当前业务的逻辑函数;所述第二执行模块用于无论开关处于打开或关闭的状态,均按照顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。在上述技术方案的基础上,所述缓存队列为数组。本专利技术还提供一种开关模式实现方法,包括以下步骤:控制模块对网页的当前业务设置开关,并将开关设为打开状态,第一执行模块依次接收当前业务的逻辑函数,并存入缓存队列中,控制模块接收到当前业务的相关业务的正确执行结果后,关闭开关,第一执行模块执行正在接收的当前业务的逻辑函数,同时,第二执行模块顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。在上述技术方案的基础上,所述缓存队列为数组。在上述技术方案的基础上,所述当前业务的相关业务的正确执行结果包括当前业务向服务器请求并获取授权。在上述技术方案的基础上,所述当前业务的相关业务的正确执行结果包括在设定的有效期内执行当前业务。在上述技术方案的基础上,所述当前业务的相关业务的正确执行结果包括当前业务向服务器请求并获取授权后,在设定的有效期内执行当前业务。在上述技术方案的基础上,所述方法还包括:当前业务向服务器请求并获取授权,并超过设定的有效期时,控制模块打开开关,第一执行模块依次接收当前业务的逻辑函数,并存入缓存队列中。在上述技术方案的基础上,所述当前业务的相关业务的正确执行结果包括在执行一个当前业务的逻辑函数前,其它若干个逻辑函数的执行已经完成。在上述技术方案的基础上,网页的当前业务包括至少两个子业务,每一个所述子业务分别使用一个开关系统。与现有技术相比,本专利技术的优点如下:(1)本专利技术中的开关系统可以用于多种网页业务,通过开关控制当前业务的逻辑函数的执行顺序,当开关打开时,将逻辑函数存入缓存队列中,当开关关闭时,执行正在接收的以及缓存队列中的逻辑函数,不但提高当前业务的执行效率,而且极大地改善了代码的可维护性和可扩展性,提高网页的开发和维护效率,降低成本,加快网页更新速度,提升用户体验和用户粘性。(2)本专利技术使用开关模式通过代码的解耦,可以有效地降低在JavaScript这种单线程语言中的异步代码编写难度,同时可以达到将业务场景中多个核心逻辑函数进行分离或接口,提升了代码的可维护性与可扩展性。(3)开发者还可以在一个网页业务中使用多个开关系统,每一个开关系统都是独立的,互相不影响,通过对各个开关系统的管理使用,本专利技术能够处理复杂的网页业务,提高网页的开发和维护效率。附图说明图1是本专利技术实施例开关系统示意图;图2是本专利技术实施例开关模式实现方法流程图。具体实施方式术语说明:Javascript:一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。它已经由欧洲电脑制造商协会ECMA通过ECMAScript实现语言的标准化。开关:在本专利中表示一种在Javascript语言中实现函数预执行的设计模式与技术手段,也就是说当代码中的某一个逻辑依赖另外一个逻辑的处理结果时候,使用开关模式可以实现代码的解耦。下面结合附图及具体实施例对本专利技术作进一步的详细描述。参见图1所示,本专利技术实施例提供一种开关系统,基于JavaScript语言,包括控制模块、缓存队列、第一执行模块和第二执行模块。控制模块用于对网页的当前业务设置开关,并根据当前业务的相关业务的执行结果控制开关的状态。第一执行模块用于当开关打开时,依次接收当前业务的逻辑函数,并存入缓存队列中,当开关关闭时,执行正在接收的逻辑函数。缓存队列为数组,缓存队列缓存逻辑函数。第二执行模块用于无论开关处于打开或关闭的状态,均按照顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。本专利技术中的开关系统在JavaScript语言中被实现为开关类,开关类用于创建开关实例,开关实例可以直接被业务场景使用,开关类的核心属性如下:控制模块state是一个函数,用于标示开关的状态,其中state=1表示开关打开,state=0表示开关关闭。缓存队列queue是一个一维数组,在开关打开的状态下,缓存逻辑函数的数据。第一执行模块may是一个函数,在开关打开的状态下,将逻辑函数加入到缓存队列queue中,在开关关闭的状态下,直接执行逻辑函数。第二执行模块release是一个函数,无视开关的状态,按照顺序强制执行缓存队列queue中所有的逻辑函数,并清空缓存队列queue。本专利技术中的开关系统可以用于多种网页业务,通过开关控制当前业务的逻辑函数的执行顺序,当开关打开时,将逻辑函数存入缓存队列中,当开关关闭时,执行正在接收的以及缓存队列中的逻辑函数,不但提高当前业务的执行效率,而且极大地改善了代码的可维护性和可扩展性,提高网页的开发和维护效率,降低成本,加快网页更新速度,提升用户体验和用户粘性。参见图2所示,本专利技术还提供一种开关模式实现方法,包括以下步骤:S1.控制模块对网页的当前业务设置开关,并将开关设为打开状态。S2.第一执行模块依次接收当前业务的逻辑函数,本文档来自技高网
...
一种开关系统及开关模式实现方法

【技术保护点】
一种开关系统,基于JavaScript语言,其特征在于,包括控制模块、缓存队列、第一执行模块和第二执行模块;所述控制模块用于对网页的当前业务设置开关,并根据当前业务的相关业务的执行结果控制开关的状态;所述第一执行模块用于当开关打开时,依次接收当前业务的逻辑函数,并存入缓存队列中,当开关关闭时,执行正在接收的当前业务的逻辑函数;所述第二执行模块用于无论开关处于打开或关闭的状态,均按照顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。

【技术特征摘要】
1.一种开关系统,基于JavaScript语言,其特征在于,包括控制模块、缓存队列、第一执行模块和第二执行模块;所述控制模块用于对网页的当前业务设置开关,并根据当前业务的相关业务的执行结果控制开关的状态;所述第一执行模块用于当开关打开时,依次接收当前业务的逻辑函数,并存入缓存队列中,当开关关闭时,执行正在接收的当前业务的逻辑函数;所述第二执行模块用于无论开关处于打开或关闭的状态,均按照顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。2.如权利要求1所述的开关系统,其特征在于:所述缓存队列为数组。3.一种使用权利要求1所述的开关系统的开关模式实现方法,其特征在于,包括以下步骤:控制模块对网页的当前业务设置开关,并将开关设为打开状态,第一执行模块依次接收当前业务的逻辑函数,并存入缓存队列中,控制模块接收到当前业务的相关业务的正确执行结果后,关闭开关,第一执行模块执行正在接收的当前业务的逻辑函数,同时,第二执行模块顺序执行缓存队列中的逻辑函数,并删除已经执行的逻辑函数。4.如权利要求3所述的开关模式实现方法,...

【专利技术属性】
技术研发人员:杜伟
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1