买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:浙江浙大万朋软件有限公司
摘要:本发明公开了一种记录在线学习视频课时长的方法。本发明通过浏览器客户端不断轮询与服务端协同工作,判断是否一个用户同时在多个浏览器观看视频课,解决了与客户端无关性,并避免重复累加学习时长。本发明能够保证一个用户同一时间只能打开一个视频播放页面。本发明解决了在线学习系统中,如何更加准确记录学生的视频课学习时长的问题。避免了多个会话导致重复累加多次,即一个用户同时学习多个视频课累加学习时间的问题。本发明的s秒的时间间隔大小有考虑到网络传输和服务响应时间;且本发明通过乐观锁机制确保每次新打开视频播放页面生成起始时间戳t0’和t2不相等。
主权项:1.一种记录在线学习视频课时长的方法,其特征在于包括如下步骤:步骤(1)用户A登录后,创建session会话,并记录用户信息,打开学习中心;步骤(2)在浏览器打开点播课视频播放页面,向服务器发起请求R0;步骤(3)服务器收到请求R0后,生成起始时间戳t0,并持久化t0到stampA变量中,即:stampA=t0,然后将t0与视频一起传递给客户端浏览器,用户A在视频播放页面中观看学习;步骤(4)视频播放页面启动定时器P和定时器Q,其中定时器P作为多页面视频播放检测定时器,定时器Q作为观看时长累加定时器,定时器P和定时器Q均通过ajax方式向服务器发送请求;步骤(5)定时器P以t0为起始值,t0+s秒后向服务器发送一次请求R1,并携带新的时间戳t1,t1=t0+s;步骤(6)服务器接收到请求R1时,根据session会话找到用户信息和新时间戳t1,计算前后两次时间戳差值diff,此时diff=t1-stampA,则当第一次判断时diff=t1-t0;如果diff=s表示正常,此时stampA变量中用t1替代t0,即:stampA=t1;步骤(7)客户端定时器P在下一个t0+2*s秒后继续向服务器发送R2请求,并携带新的时间戳t2,t2=t0+2*s;步骤(8)服务器收到请求R2时,同样根据session会话找到用户信息和新时间戳t2,计算前后两次时间戳差值diff,此时:diff=t2-t1,如果diff=s表示正常,此时stampA变量中用t2替代t1,即:stampA=t2;依次类推,轮询验证;步骤(1)~步骤(8)是用户A只打开一个视频播放页面,正常的情况,但如果用户A又打开了一个视频播放页面就会出现前后两次时间戳差值diffs的情况,如下所述:步骤(9)此时用户A又打开一个新的视频播放页面,向服务器发起请求R0’,服务器产生新的起始时间戳t0’,并持久化t0’到stampA变量中,即:stampA=t0’;步骤(10)如果此时第一个视频播放页面刚好执行跟步骤(7)一样的轮询过程时,则此时服务器收到R3的请求,diff=t3-t2就变成了diff=t3-t0’,由于t2和t0’并不是在同一个时间周期s秒内产生的,所以此时diff不等于s,表示用户A打开了多个视频播放页面;步骤(11)定时器Q间隔一定时间向服务器提交观看时长;视频播放时定时器Q启动,视频暂停时定时器Q停止;diff等于s时,定时器Q继续;diff不等于s时,定时器Q停止。
全文数据:一种视频课记录在线学习时长的方法技术领域本发明属于计算机web应用领域,尤其是在浏览器运行的应用中准确记录点播视频课程学习时长的方法。背景技术随着互联网普及和web2.0的发展,基于浏览器的web应用越来越受到人们的青睐,请求+响应模式的http协议造就了浏览器web应用的简洁性和易用性,以及技术实现的快捷性。css3、html5的出现,以及ajax技术和json数据格式的流行,使基于http的web系统天生就具备了很多优势,更强的灵活性,更复杂的多样性,更强的扩展性,以及更好的用户体验。http协议是无状态的,无法保持用户状态,但可以通过session或cookie记录标识来保持用户会话,从而使http变成了有状态。这种状态记录方式有某些局限性,都是基于同一个浏览器,并且有时效性,依赖于客户端或服务器端记录。有了会话状态,这样服务器端就会做更多的事情,实现更多功能。另外,因为http是基于短连接的,所以如果web应用中有需要长链接的功能也是比较困难的。虽然最新发布的一些web服务器添加了长连接模块,以及html5中也对http进行了扩展,支持websocket,但还是没有socket简单易用,并且还受浏览器版本限制,只能在支持html5的高版本浏览器和高版本的web服务器上才能支持。发明内容本发明的目的针对现有技术的不足,提供一种视频课记录在线学习时长的方法。本发明所采用的技术方案和实现机制如下步骤:步骤1用户A登录后,创建session会话,并记录用户信息,打开学习中心。步骤2在浏览器打开点播课视频播放页面,向服务器发起请求R0。步骤3服务端收到请求R0后,生成起始时间戳t0,并持久化t0到stampA变量中,即:stampA=t0,然后将t0与视频等信息一起传递给客户端浏览器,用户在视频播放页面中观看学习。步骤4视频播放页面启动定时器P和定时器Q,其中定时器P用于多页面视频播放检测定时器,定时器Q作为观看时长累加定时器,定时器P和定时器Q均通过ajax方式请求服务端;步骤5定时器P以t0为起始值,t0+s秒后向服务器端发送一次请求R1,并携带新的时间戳t1,t1=t0+s。步骤6服务器端接收到请求R1时,根据session会话找到用户信息和新时间戳t1,判断t1-tampA的值diff,即diff=t1-tampA,但是当第一次判断时diff=t1-t0;如果diff=s表示正常,此时stampA变量中用t1替代t0,即:stampA=t1。步骤7客户端定时器P在下一个t0+2*s秒后继续向服务器端发送R2请求,并携带新的时间戳t2,t2=t0+2*s。步骤8服务器端收到请求R2时,同样根据session会话找到用户信息和新时间戳t2,判断t2-stampA的值diff,即:diff=t2-t1,如果diff=s表示正常,此时stampA变量中用t2替代t1,即:stampA=t2。依次类推,轮询验证。以上是用户只打开一个视频播放页面,正常的情况。如果A用户又打开了一个视频播放页面就会出前后两次时间戳差值diffs的情况,如下所述:步骤9此时A用户又打开一个新的视频播放页面,向服务器发起请求R0’,服务器端产生新的起始时间戳t0’,并持久化t0’到stampA变量中,即:stamp=t0’。步骤10如果此时第一个视频播放页面刚好执行跟步骤7一样的轮询过程时,则此时服务器端收到R3的请求,diff=t3-t2就变成了diff=t3-t0’,由于t2和t0’并不是在同一个时间周期s秒内产生的,所以此时diff不等于s,表示用户A打开了多个视频播放页面。步骤11定时器Q间隔一定时间向服务器提交观看时长。视频播放时定时器Q启动,视频暂停时定时器Q停止;diff等于s时,定时器Q继续;diff不等于s时,定时器Q停止。本发明中起始时间戳t0必须以服务器时间为准,间隔s秒后由页面将新时间戳传到服务器端;s秒的时间间隔大小要考虑到网络传输和服务响应时间,必须在s秒内完成了传输和响应;通过乐观锁机制确保每次新打开视频播放页面生成起始时间戳t0’和t2不相等。本发明有益效果如下:本发明能够保证一个用户同一时间只能打开一个视频播放页面。本发明解决了在线学习系统中,如何更加准确记录学生的视频课学习时长的问题。避免了多个会话导致重复累加多次,即一个用户同时学习多个视频课累加学习时间的问题。本发明通过浏览器客户端不断轮询与服务端协同工作,判断是否一个用户同时在多个浏览器观看视频课,解决了与客户端无关性,并避免重复累加学习时长。本发明的s秒的时间间隔大小有考虑到网络传输和服务响应时间;且本发明通过乐观锁机制确保每次新打开视频播放页面生成起始时间戳t0’和t2不相等。附件说明图1为本发明服务端与客户端时序图。具体实施方式目前浏览器产品众多,一个用户同一台电脑上装多个浏览器是很普遍的现象,并且浏览器版本也不尽相同。同一台电脑终端、同一浏览器或不同浏览器,即使是同一个用户登录,也会产生两个不同的session或cookie。并且有些低版本浏览器不支持长连接。本发明就是要解决在这种情况下在线学习系统中,如何更加准确记录学生的视频课学习时长。比如:一个用户在同一台电脑上登录多个浏览器,或者不同电脑上登录,观看点播视频课,如果都按session或cookie记录观看时长,那么多个会话导致重复累加多次,但实际一个用户不可能同时学习多个视频课。为了避免这个问题,本发明通过浏览器客户端不断轮询与服务端协同工作,判断是否一个用户同时在多个浏览器观看视频课,解决了与客户端无关性,并避免重复累加学习时长。如图1所示,本发明实现机制如下步骤:步骤1用户A登录后,创建session会话,并记录用户信息,打开学习中心。步骤2在浏览器打开点播课视频播放页面,向服务器发起请求R0。步骤3服务端收到请求R0后,生成起始时间戳t0,并持久化t0到stampA变量中,即:stampA=t0,然后将t0与视频等信息一起传递给客户端浏览器,用户在视频播放页面中观看学习。步骤4视频播放页面启动定时器P和定时器Q,其中定时器P用于多页面视频播放检测定时器,定时器Q作为观看时长累加定时器,定时器P和定时器Q均通过ajax方式请求服务端;步骤5定时器P以t0为起始值,t0+s秒后向服务器端发送一次请求R1,并携带新的时间戳t1,t1=t0+s。步骤6服务器端接收到请求R1时,根据session会话找到用户信息和新时间戳t1,判断t1-tampA的值diff,即diff=t1-tampA,但是当第一次判断时diff=t1-t0;如果diff=s表示正常,此时stampA变量中用t1替代t0,即:stampA=t1。步骤7客户端定时器P在下一个t0+2*s秒后继续向服务器端发送R2请求,并携带新的时间戳t2,t2=t0+2*s。步骤8服务器端收到请求R2时,同样根据session会话找到用户信息和新时间戳t2,判断t2-stampA的值diff,即:diff=t2-t1,如果diff=s表示正常,此时stampA变量中用t2替代t1,即:stampA=t2。依次类推,轮询验证。以上是用户只打开一个视频播放页面,正常的情况。如果A用户又打开了一个视频播放页面就会出前后两次时间戳差值diffs的情况,如下所述:步骤9此时A用户又打开一个新的视频播放页面,向服务器发起请求R0’,服务器端产生新的起始时间戳t0’,并持久化t0’到stampA变量中,即:stamp=t0’。步骤10如果此时第一个视频播放页面刚好执行跟步骤7一样的轮询过程时,则此时服务器端收到R3的请求,diff=t3-t2就变成了diff=t3-t0’,由于t2和t0’并不是在同一个时间周期s秒内产生的,所以此时diff不等于s,表示用户A打开了多个视频播放页面。步骤11定时器Q间隔一定时间向服务器提交观看时长。视频播放时定时器Q启动,视频暂停时定时器Q停止;diff等于s时,定时器Q继续;diff不等于s时,定时器Q停止。本发明中起始时间戳t0必须以服务器时间为准,间隔s秒后由页面将新时间戳传到服务器端;s秒的时间间隔大小要考虑到网络传输和服务响应时间,必须在s秒内完成了传输和响应;通过乐观锁机制确保每次新打开视频播放页面生成起始时间戳t0’和t2不相等。
权利要求:1.一种视频课记录在线学习时长的方法,其特征在于包括如下步骤:步骤1用户A登录后,创建session会话,并记录用户信息,打开学习中心;步骤2在浏览器打开点播课视频播放页面,向服务器发起请求R0;步骤3服务端收到请求R0后,生成起始时间戳t0,并持久化t0到stampA变量中,即:stampA=t0,然后将t0与视频等信息一起传递给客户端浏览器,用户在视频播放页面中观看学习;步骤4视频播放页面启动定时器P和定时器Q,其中定时器P用于多页面视频播放检测定时器,定时器Q作为观看时长累加定时器,定时器P和定时器Q均通过ajax方式请求服务端;步骤5定时器P以t0为起始值,t0+s秒后向服务器端发送一次请求R1,并携带新的时间戳t1,t1=t0+s;步骤6服务器端接收到请求R1时,根据session会话找到用户信息和新时间戳t1,判断t1-tampA的值diff,即diff=t1-tampA,但是当第一次判断时diff=t1-t0;如果diff=s表示正常,此时stampA变量中用t1替代t0,即:stampA=t1;步骤7客户端定时器P在下一个t0+2*s秒后继续向服务器端发送R2请求,并携带新的时间戳t2,t2=t0+2*s;步骤8服务器端收到请求R2时,同样根据session会话找到用户信息和新时间戳t2,判断t2-stampA的值diff,即:diff=t2-t1,如果diff=s表示正常,此时stampA变量中用t2替代t1,即:stampA=t2;依次类推,轮询验证;步骤1~步骤8是用户只打开一个视频播放页面,正常的情况,但如果A用户又打开了一个视频播放页面就会出前后两次时间戳差值diffs的情况,如下所述:步骤9此时A用户又打开一个新的视频播放页面,向服务器发起请求R0’,服务器端产生新的起始时间戳t0’,并持久化t0’到stampA变量中,即:stamp=t0’;步骤10如果此时第一个视频播放页面刚好执行跟步骤7一样的轮询过程时,则此时服务器端收到R3的请求,diff=t3-t2就变成了diff=t3-t0’,由于t2和t0’并不是在同一个时间周期s秒内产生的,所以此时diff不等于s,表示用户A打开了多个视频播放页面;步骤11定时器Q间隔一定时间向服务器提交观看时长;视频播放时定时器Q启动,视频暂停时定时器Q停止;diff等于s时,定时器Q继续;diff不等于s时,定时器Q停止。2.根据权利要求1所述的一种视频课记录在线学习时长的方法,其特征在于起始时间戳t0必须以服务器时间为准,间隔s秒后由页面将新时间戳传到服务器端;s秒的时间间隔大小要考虑到网络传输和服务响应时间,必须在s秒内完成了传输和响应;通过乐观锁机制确保每次新打开视频播放页面生成起始时间戳t0’和t2不相等。
百度查询: 浙江浙大万朋软件有限公司 一种记录在线学习视频课时长的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。