账号通
    

账号  

密码  

15915

查看

32

回复
主题:科讯考试系统-刷新后考试剩余时间回到初始值解决办法(js版)!!!! [收藏主题] 转到:  
licaifuwu 当前离线

653

主题

10

广播

17

粉丝
添加关注
级别:六年级

用户积分:1585 分
登录次数:361 次
注册时间:2010/11/19
最后登录:2019/5/7
licaifuwu 发表于:2011/1/30 15:19:14   | 显示全部帖子 查看该作者主题 楼主 
科汛在线考试系统(NET)

不知道其他人 包括商业版的会不会出现这个问题。。

反正我手上的有这个问题。。。。



我用的是js方法 当然也可以用asp 纯属个人喜欢! 不喜绕道!



问题

当用户刷新页面后 考试剩余时间会回到120分钟(我的是120分钟,大多数都是吧)

本来已经花掉的时间不会算在里面 只要刷新就会变回去

解决思路

1看到右边的剩余时间在每间隔一秒的减少 这里肯定用js在重写里面的内容

2思考在重写剩余时间的时候是不是可以设置一个cookie 记录当前分钟 秒钟

3写js 存储,调用及清楚cookie代码 在任意地方插入

如下

  1. <script language="javascript">var Cookies = {};
  2. Cookies.set = function(name, value){
  3. var argv = arguments;
  4. var argc = arguments.length;
  5. var expires = (argc > 2) ? argv[2] : null;
  6. var path = (argc > 3) ? argv[3] : '/';
  7. var domain = (argc > 4) ? argv[4] : null;
  8. var secure = (argc > 5) ? argv[5] : false;
  9. document.cookie = name + "=" + escape (value) +
  10. ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
  11. ((path == null) ? "" : ("; path=" + path)) +
  12. ((domain == null) ? "" : ("; domain=" + domain)) +
  13. ((secure == true) ? "; secure" : "");
  14. };
  15. Cookies.get = function(name){
  16. var arg = name + "=";
  17. var alen = arg.length;
  18. var clen = document.cookie.length;
  19. var i = 0;
  20. var j = 0;
  21. while(i < clen){
  22. j = i + alen;
  23. if (document.cookie.substring(i, j) == arg)
  24. return Cookies.getCookieVal(j);
  25. i = document.cookie.indexOf(" ", i) + 1;
  26. if(i == 0)
  27. break;
  28. }
  29. return null;
  30. };
  31. Cookies.clear = function(name) {
  32. if(Cookies.get(name)){
  33. var expdate = new Date();
  34. expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
  35. Cookies.set(name, "", expdate);
  36. }
  37. };
  38. Cookies.getCookieVal = function(offset){
  39. var endstr = document.cookie.indexOf(";", offset);
  40. if(endstr == -1){
  41. endstr = document.cookie.length;
  42. }
  43. return unescape(document.cookie.substring(offset, endstr));
  44. }; </script>

4设置js存储cookie

总共3个需要 分别是min1,sec1,loops

为什么是这3个我就不说了。。

js代码 addtime()函数中加

  1. ......

  2. loops--;

  3. sec1++;

  4. Cookies.set("loops",loops);

  5. Cookies.set("min1",min1);
  6. Cookies.set("sec1",sec1);

5 调用cookie 在初始设置后面调用 并更改初始值

在设定初始值后加入

  1. .....

  2. var tmpobj = setInterval("addtime()",1000);

  3. var timeout;

  4. if (Cookies.get("min1")!=""){min1=Cookies.get("min1");timevalue-=min1}

  5. if (Cookies.get("sec1")!=""){sec1-=Cookies.get("sec1");}
  6. if (Cookies.get("loops")!=""){loops=Cookies.get("loops");}

6也是关键的一步 清除cookie 。如果你不清楚 那么在用户做其他题的时候也会直接被减去相应时间

如以下代码(有两处需要添加

  1. Cookies.clear("min1");Cookies.clear("sec1");Cookies.clear("loops");



加入位置

以下内容只有回复后才可以浏览,请先登录!



由于本人的源文件已经做了二次开发就不方便发出了给大家替换了。。



更多交流 可以加我 或者 www.webx32.com 或者Q群 16695807

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.08008秒 powered by KesionCMS 9.0