//js四舍五入的方法
//保留小数点后两位
// var n = 12.7768;
// var m = ForDight(n,2);
function ForDight(Dight,How) {
Dight = Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);
return Dight;
}
//对IE中窗口的resize事件会执行N次的解决方法
var debounce = function (func, threshold, execAsap) {
var timeout;
return function debounced () {
var obj = this, args = arguments;
function delayed () {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
}
debounce 接受 3 个参数,后两个可选;
第一个是要 debounce 的函数;
第二个代表 debouce 的时间间隔;
第三个在时间段的开始还是结束执行函数;
返回包装好的函数debounce,该函数两次执行间隔至少是 threshold,并且小于 threshold 间隔的调用会重新开始计时( 两次调用的时间间隔);
把 clearTimeout( timeout ) 换为 timer = null; 返回函数两次执行间隔至少是 threshold,并且小于 threshold 间隔的调用会重新开始计时( 两次调用的时间间隔);
// 解决 onresize 多次调用
window.onresize = debounce( function(){
alert( 'hello world');
}, 100, true)
// 在自动补齐中为了减少请求服务器次数也会用到 debounce, 只有连续敲键间隔大于某个值才会发送 ajax
window.onresize = debounce( function(){
var w = document.body.clientWidth-5;
var h = document.body.clientHeight-30;
FixTable("MyTable", 1, w, h);
}, 100, true)
//保留小数点后两位
// var n = 12.7768;
// var m = ForDight(n,2);
function ForDight(Dight,How) {
Dight = Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);
return Dight;
}
//对IE中窗口的resize事件会执行N次的解决方法
var debounce = function (func, threshold, execAsap) {
var timeout;
return function debounced () {
var obj = this, args = arguments;
function delayed () {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
}
debounce 接受 3 个参数,后两个可选;
第一个是要 debounce 的函数;
第二个代表 debouce 的时间间隔;
第三个在时间段的开始还是结束执行函数;
返回包装好的函数debounce,该函数两次执行间隔至少是 threshold,并且小于 threshold 间隔的调用会重新开始计时( 两次调用的时间间隔);
把 clearTimeout( timeout ) 换为 timer = null; 返回函数两次执行间隔至少是 threshold,并且小于 threshold 间隔的调用会重新开始计时( 两次调用的时间间隔);
// 解决 onresize 多次调用
window.onresize = debounce( function(){
alert( 'hello world');
}, 100, true)
// 在自动补齐中为了减少请求服务器次数也会用到 debounce, 只有连续敲键间隔大于某个值才会发送 ajax
window.onresize = debounce( function(){
var w = document.body.clientWidth-5;
var h = document.body.clientHeight-30;
FixTable("MyTable", 1, w, h);
}, 100, true)