首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载新页面时,计数器变量不会持续存在

加载新页面时,计数器变量不会持续存在
EN

Stack Overflow用户
提问于 2013-03-17 18:51:52
回答 2查看 528关注 0票数 1

我想在javascript中使用计数器变量,就像使用计时器的静态变量一样。计数器必须每秒钟递减1。我正在做在线考试。在回答一个问题时,新问题出现在同一页上。我的问题开始于计数器变量被初始化为新的问题(意味着新的页面)。计数器变量在新的page...suggest any解决方案中不存在

代码语言:javascript
运行
复制
<script language="JavaScript">

function ExamTimer() 
{   
if ( typeof ExamTimer.counter == 'undefined' )   
{   
ExamTimer.counter = 30000;  // 30 min
    }
else
{

 ExamTimer.counter = ExamTimer.counter-1;   
    if(ExamTimer.counter<=0)
    {
          alert("exam finish");
     }
setTimeout(ExamTimer, 1000);

  }
window.onload=ExamTimer;
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-18 19:39:19

使用ajax将值从一个页面传递到另一个页面。使用会话保存最后一个remainTime泰语被传递到下一页

代码语言:javascript
运行
复制
<script language="JavaScript">

 function ExamTimer() 
 {   
 if ( typeof ExamTimer.counter == 'undefined' )   
 {   
  ExamTimer.counter = <cfoutput>#session.RemainTime#</cfoutput>;
  }
  else
   {

 ExamTimer.counter = ExamTimer.counter-1; 
 $.get('linktosend.cfm',{counter:ExamTimer.counter},function(responseText)
    { 
// value of ExamTimer.counter send to linktosend.cfm and store in session.RemainTime           
 });  
 if(ExamTimer.counter<=0)
 {
       alert("exam finish");
 }
setTimeout(ExamTimer, 1000);

 }
 window.onload=ExamTimer;

 </script>
票数 2
EN

Stack Overflow用户

发布于 2013-03-17 19:02:54

Javascript变量的存在时间不会超过当前页面的负载。浏览器的Javascript引擎在每次页面加载时执行代码(通过most browsers cache the complied code),因此每当页面重新加载时,客户端变量都会丢失。

有几种常见的方法可以将值从一个页面传递到另一个页面:

通过GET或POST请求

  1. DOM storage
  2. Cookies
  3. Server-side变量

无论您选择哪种方法,请记住,它需要对用户不想要的操作具有足够的弹性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15459933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档