日期:2014-05-16  浏览次数:20583 次

js循环调用的优化

self.setInterval("abc()",2000);
function GetTips(){
$.getJSON("?c=message&a=public_level_log&time="+(new Date()).valueOf(),function(data){
/**
数据写入页面
*/
}
}

这样写浏览器开一会就会很卡 有什么优化的方法吗 求指教 
------解决方案--------------------
操作过程中内存及时回收释放(这个很重要内容是用率高后你会明显的感觉卡)

举个例子new?Date()  这个 可以缓存起来 用完后及时设为null 以便浏览器及时回收


------解决方案--------------------
一 ajax设置超时,超时时间为轮询间隔时间
二 不要用setInterval,在ajax的回调success,error中用setTimeout来设定下一次轮询

这样虽然不能保证每次查询的间隔都是2000,但基本也不会差,而且上一次的ajax己经算是销毁了
利于浏览器回收

三 向页面写数据时,如果需要频繁的添加删除元素,要么将包括所有要修改的元素的父元素内的html一起重写,要么尽可能的只去修改value
------解决方案--------------------
label
------解决方案--------------------
attributes,元素自身不要动

四 被修改的元素如果绑定了事件,尽可能的将其委托给不会被修改的父元素