javascript 定时器 倒计时

链接地址:http://kevin12.iteye.com/blog/1946035

最近做项目,项目里面用到了定时器,用来刷新页面,javascript代码如下:

<script type="text/javascript">
var start = 5;
var step = -1;
function count()
{
	document.getElementById("div1").innerHTML = "页面将在"+start+"秒后返回登录页面...";
	start += step;
	if(start <= 0){
		start = 5;
		//window.location="index.jsp";//返回index.jsp页面
		//TODO:在这里可以做相关的操作
	}
setTimeout("count()",1000); 
}
window.onload = count;
</script>

body中的代码如下:

<body>
   <div id="div1"></div>
</body>

既然上面的例子可以用倒计时,但是完全可以用于自动刷新页面,就是当倒计时结束后进行相关的操作。要注意的是,如果你访问该页面时候url后面带有参数,那么在该页面中你要房租存放参数的隐藏域,在进入页面时候将该参数赋值到隐藏域中,倒计时结束时候获取隐藏域中的参数,加到url中。下面是项目中一个简单页面部分代码:

<script type="text/javascript">
	//30秒刷新流程进度
		var start = 30;
		var step = -1;
		var mainId = "";//流程主表中流程id
		var pid = "";//流程id
		function counts()
		{
			start += step;
			if(start <= 0){
				if(mainId==""||pid==""){
					mainId = $("#mainId").val();
					pid = $("#pid").val();
				}
				start = 30;
				window.location="viewProgress.jsp?random="+Math.random()+"&paramStr="+mainId+"&pid="+pid+"&state=";
			}
		setTimeout("counts()",1000); 
		}
		window.onload = counts;
	</script>
<body>
	<input type="hidden" id="mainId"/>
	<input type="hidden" id="pid"/>
	<!--下面的省略-->

给隐藏域赋值的方法(部分代码):

//显示流程图
var isShowGraph = false;
var mainId = "";
var pid = "";
function showGraph(mxEditor){
	var path = decodeURIComponent(location.href);//转码
	var index = path.indexOf('paramStr=');
	var index2=path.indexOf('&pid=');
	var index3=path.indexOf('&state=');
	if(index != -1){
		mainId = path.substring(index+9,index2);
		pid = path.substring(index2+5,index3);
		$("#mainId").val(mainId);
		$("#pid").val(pid);
	$.ajax({
		type:'POST',
		dataType:'xml',
		url:'../loadWorkflowXml.action',
		data:{'mainId':mainId},
		//下面的代码省略

链接地址:http://kevin12.iteye.com/blog/1946035

简单应用可参考:http://kevin12.iteye.com/blog/1930366

相关推荐