不知道其他人 包括商业版的会不会出现这个问题。。
反正我手上的有这个问题。。。。
我用的是js方法 当然也可以用asp 纯属个人喜欢! 不喜绕道!
问题
当用户刷新页面后 考试剩余时间会回到120分钟(我的是120分钟,大多数都是吧)
本来已经花掉的时间不会算在里面 只要刷新就会变回去
解决思路
1看到右边的剩余时间在每间隔一秒的减少 这里肯定用js在重写里面的内容
2思考在重写剩余时间的时候是不是可以设置一个cookie 记录当前分钟 秒钟
3写js 存储,调用及清楚cookie代码 在任意地方插入
如下
- <script language="javascript">var Cookies = {};
- Cookies.set = function(name, value){
- var argv = arguments;
- var argc = arguments.length;
- var expires = (argc > 2) ? argv[2] : null;
- var path = (argc > 3) ? argv[3] : '/';
- var domain = (argc > 4) ? argv[4] : null;
- var secure = (argc > 5) ? argv[5] : false;
- document.cookie = name + "=" + escape (value) +
- ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
- ((path == null) ? "" : ("; path=" + path)) +
- ((domain == null) ? "" : ("; domain=" + domain)) +
- ((secure == true) ? "; secure" : "");
- };
- Cookies.get = function(name){
- var arg = name + "=";
- var alen = arg.length;
- var clen = document.cookie.length;
- var i = 0;
- var j = 0;
- while(i < clen){
- j = i + alen;
- if (document.cookie.substring(i, j) == arg)
- return Cookies.getCookieVal(j);
- i = document.cookie.indexOf(" ", i) + 1;
- if(i == 0)
- break;
- }
- return null;
- };
- Cookies.clear = function(name) {
- if(Cookies.get(name)){
- var expdate = new Date();
- expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
- Cookies.set(name, "", expdate);
- }
- };
- Cookies.getCookieVal = function(offset){
- var endstr = document.cookie.indexOf(";", offset);
- if(endstr == -1){
- endstr = document.cookie.length;
- }
- return unescape(document.cookie.substring(offset, endstr));
- }; </script>
4设置js存储cookie
总共3个需要 分别是min1,sec1,loops
为什么是这3个我就不说了。。
js代码 addtime()函数中加
......
loops--;- sec1++;
Cookies.set("loops",loops);- Cookies.set("min1",min1);
- Cookies.set("sec1",sec1);
5 调用cookie 在初始设置后面调用 并更改初始值
在设定初始值后加入
.....
var tmpobj = setInterval("addtime()",1000);
- var timeout;
if (Cookies.get("min1")!=""){min1=Cookies.get("min1");timevalue-=min1}- if (Cookies.get("sec1")!=""){sec1-=Cookies.get("sec1");}
- if (Cookies.get("loops")!=""){loops=Cookies.get("loops");}
6也是关键的一步 清除cookie 。如果你不清楚 那么在用户做其他题的时候也会直接被减去相应时间
如以下代码(有两处需要添加)
Cookies.clear("min1");Cookies.clear("sec1");Cookies.clear("loops");
加入位置
以下内容只有回复后才可以浏览,请先登录! 由于本人的源文件已经做了二次开发就不方便发出了给大家替换了。。
更多交流 可以加我 或者 www.webx32.com 或者Q群 16695807