JS 定时执行代码

1.前言

使用Ajax技术做动态加载的网站,有时也需要定时拉取服务器信息,比如给登录用户发送消息之类的.这里介绍两个函数,setInterval开始定时执行一个任务,clearInterval终止指定的任务.

2.setInterval定义和用法

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法

setInterval(code,millisec[,"lang"])
参数 描述
code 必需。要调用的函数或要执行的代码串。
millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。

返回值

一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。

3.clearInterval定义和用法

clearInterval() 方法可取消由 setInterval() 设置的 timeout。

clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

语法

clearInterval(id_of_setinterval)
参数 描述
id_of_setinterval 由 setInterval() 返回的 ID 值。

4.实例

下面这个例子将每隔 50 毫秒调用 clock() 函数。您也可以使用一个按钮来停止这个 clock:

<html>
<body>

<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
 {
 var t=new Date()
 document.getElementById("clock").value=t
 }
</script>
<button onclick="int=window.clearInterval(int)">Stop interval</button>

</body>
</html>

AJAX新增加的内容不能响应事件

刚开始接触AJAX,先是直接JS写,代码比较多,后来直接用JQ来写方便多了,在写AJAX的时候,发现由AJAX加载的内容却不能响应JS/JQ的事件,百度一下,总算了解了一点…

在需要动态加载的内容绑定事件的时候,可以用.on ,这是jq的方法.

$(document).on('click',"button",function(){
//事件触发后的处理
});

用这样的方式绑定button控件的click事件,即使button控件是ajax动态加载的,也会正常执行.

.on( events [, selector ] [, data ], handler(eventObject) )

以上是.on的描述.

JS 操作COOKIE

JS本身没有直接操作cookie的函数,于是自己写了一个,可以读取,写入,删除cookie.

以下是代码:

setcookie('t','1','10');
//设置cookie,第一个参数是名称,第二个是值,第三个可选,表示有效时间,单位是秒
alert(getcookie('t'));
//获取cookie,参数是cookie名称
delcookie('t');
//删除cookie,参数是cookie名称
alert(getcookie('t'));

function setcookie(name,value,extime){
	var exdate=new Date();
	exdate.setTime(exdate.getTime()+extime*1000);
	document.cookie=name+ "=" +escape(value)+((extime==null) ? "" : ";expires="+exdate.toGMTString());
	}

function getcookie(name){
	var cookies = document.cookie.split("; ");
	for(var i = 0;i < cookies.length;i ++){
		var value = cookies[i].split("=");
		if(value[0] == name) {
			var value = unescape(value[1]);
			return value;
			}
		}
	}

function delcookie(name){
	var exdate=new Date()
	exdate.setDate(exdate.getDate()-1);
	document.cookie=name+ "=;expires="+exdate.toGMTString();
	}