一种服务器KVM应对浏览器优化策略的控制方法及系统与流程

文档序号:38035084发布日期:2024-05-17 13:19阅读:11来源:国知局
一种服务器KVM应对浏览器优化策略的控制方法及系统与流程

本发明涉及服务器针对浏览器的优化控制领域,尤其涉及一种服务器kvm应对浏览器优化策略的控制方法,并进一步涉及采用了该服务器kvm应对浏览器优化策略的控制方法的控制系统。


背景技术:

1、随着社会的发展,目前主要的浏览器厂商,包括chrome浏览器、edge浏览器和firefox浏览器等,为提高用户体验,纷纷提出了各种优化策略,比如采用native windowocclusion(chrome)的用户优化策略,通俗来说即浏览器节制后台标签的优先级,即节制用户不可见的标签页的优先级,以减少浏览器的资源使用,以便将更多内存、cpu 和 gpu 留给前台标签,即留给用户可见的标签页,这种浏览器优化策略能够带来浏览器的启动、渲染和低延迟等多方位的性能提升。

2、native window occlusion的优化策略适用于大部分的web用户应用场景,且带来了客观的性能提升与用户体验,但是在通过bmc web系统的kvm功能对服务器进行远程控制时,存在一个不容易发现的问题,即当用户将kvm界面标签最小化的时间达到6min及以上,在重新展示后,会出现kvm频繁掉线重连的提示,甚至会出现退出现象,给kvm的操作带来了极差的用户体验,kvm指的是启用远程控制h5viewer的控制器,也称远程控制管理软件,主机屏幕将在应用程序中显示,用户pc端的键盘和鼠标可以用来控制服务器。

3、之所以将kvm界面标签最小化的时间达到6min及以上时,会出现kvm频繁掉线重连的提示,甚至会出现退出现象;其原因在于:native window occlusion优化策略会随着时间的变长,降低甚至停止javascript 代码(即定时器)的执行,导致web与bmc之间的心跳协议中断而触发重连机制。为了应对这种现象,现有技术通常在web端放弃使用javascript代码(定时器),并通过与bmc协商更改交互流程,如图3所示,由bmc端控制心跳的频率,从而通过放弃定时器来规避浏览器优化策略所造成的影响。

4、但是这种现有通过定时器的方式明显是不够合理的,存在以下技术问题:web端需要放弃/规避定时器的使用,特别是心跳交互等重要流程,需要改变交互流程,不能很好地满足现有的交互需求;在工作量/数据量提升时,后续需要使用定时器的场景中,需与bmc协商重构交互流程;在使用引入了定时器处理的浏览器时存在隐患,兼容性差。


技术实现思路

1、本发明所要解决的技术问题是需要提供一种服务器kvm应对浏览器优化策略的控制方法,旨在能够正常使用定时器,有效地提高对于浏览器的兼容性,并无需对交互流程进行改动。在此基础上,还进一步提供采用了该服务器kvm应对浏览器优化策略的控制方法的控制系统。

2、对此,本发明提供一种服务器kvm应对浏览器优化策略的控制方法,包括以下步骤:

3、步骤s1,新增一个javascript脚本文件,将该脚本文件命名为timeworker.js脚本,所述timeworker.js脚本用于当kvm服务启动时建立连接,在所述javascript脚本文件里面通过onmessage函数监听来自web端发起的worker请求,并进行分析处理和响应;

4、步骤s2,在kvm服务启动后,在web端先通过worker接口创建一个指向到timeworker.js脚本的worker线程连接,然后在worker实例中新增setinterval设置时间间隔函数和settimeout设置时间溢出函数,最后监听脚本响应信号以及回传的id值,根据id值找到并执行对应的回调函数,实现一次定时器的执行;

5、步骤s3,将worker实例中新增的setinterval/settimeout函数用于实际需要使用定时器的场景。

6、本发明的进一步改进在于,所述步骤s1中,通过新建一个javascript脚本用于进行定时器的计算与回传,并作为后续在javascript主线程中创建一个worker 线程的目标文件,并通过前端资源的编译打包,将所述javascript脚本文件整合到bmc基板管理控制器中。

7、本发明的进一步改进在于,将新增的javascript脚本文件部署至服务器www访问路径下。

8、本发明的进一步改进在于,所述步骤s1当kvm服务启动时,包括以下子步骤:

9、步骤s101,在所述javascript脚本文件里面通过onmessage函数监听来自web端发起的worker请求,通过web端协议的command字段确定需要开启的定时器类型,所述定时器类型包括setinterval设置时间间隔函数和settimeout设置时间溢出函数;

10、步骤s102,通过web端协议的interval字段确定时长;

11、步骤s103,以web端协议的id值为索引,启动相应的定时器流程,在经过所述interval字段对应的时长后,通过postmessage函数将定时器完成的信号以及id值回传至web端。

12、本发明的进一步改进在于,所述步骤s2中,通过new worker('服务器url/libs/kvm/timeworker.js')指令在worker接口创建一个指向到timeworker.js的脚本的worker线程连接。

13、本发明的进一步改进在于,所述步骤s2中,在worker实例中新增setinterval设置时间间隔函数和settimeout设置时间溢出函数的过程包括如下:分别将需要使用的setinterval设置时间间隔函数和settimeout设置时间溢出函数的请求信息进行封装,通过postmessage函数向timeworker.js的脚本发送定时器请求,同时通过id值的依次自动增加实现对每个定时器的标定,并将定时器请求中的上下文和回调函数通过id值作为下标进行索引和存储。

14、本发明的进一步改进在于,所述步骤s2中,通过onmessage函数监听timeworker.js脚本的脚本响应信号以及回传的id值,根据id值找到并执行与所述id值相对应的回调函数,实现所述定时器的执行。

15、本发明的进一步改进在于,所述步骤s3中,将worker实例中新增的setinterval/settimeout函数用于实际需要使用定时器的场景指的是,当需要使用到定时器场景时,使用worker实例中新增的setinterval/settimeout函数替代原window对象上的原生定时器。

16、本发明还提供一种服务器kvm应对浏览器优化策略的控制系统,采用了如上所述的服务器kvm应对浏览器优化策略的控制方法,并包括:

17、新增脚本文件模块,新增一个javascript脚本文件,将该脚本文件命名为timeworker.js脚本,所述timeworker.js脚本用于当kvm服务启动时建立连接,在所述javascript脚本文件里面通过onmessage函数监听来自web端发起的worker请求,并进行分析处理和响应;

18、线程连接和执行模块,在kvm服务启动后,在web端先通过worker接口创建一个指向到timeworker.js脚本的worker线程连接,然后在worker实例中新增setinterval设置时间间隔函数和settimeout设置时间溢出函数,最后监听脚本响应信号以及回传的id值,根据id值找到并执行对应的回调函数,实现一次定时器的执行;

19、定时器替换模块,将worker实例中新增的setinterval/settimeout函数用于实际需要使用定时器的场景。

20、与现有技术相比,本发明的有益效果在于:通过web worker在javascript主线程中开创一个worker线程, 用于处理定时器的正常运作,以最小的代价保障服务器kvm功能在应对浏览器优化策略时的稳定运行,使得定时器不受浏览器优化策略干扰,web端可以正常使用定时器,有效地提高了对于浏览器的兼容性,并且无需对交互流程进行改动,能够很好地满足现有的交互需求。

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