c语言是从什么函数开始执行节流是怎么执行的,他刚开始是true,执行后应该是false;应该不执行,是怎么执行的下面?

函数循环(setInterval)间隔指定的毫秒数不停地执行指定的代码<button onclick="myStartFunction()">开始</button>
<button onclick="myStopFunction()">停止</button>
<script>
var myVar =
null; //全局
function myTimer(){
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("demo").innerHTML=t;
}
function
myStart() {
setInterval(function(){myTimer()},1000); // 开始执行
}
function myStopFunction(){
clearInterval(myVar); // 停止执行
}
</script>
函数延时(setTimeout)在指定的毫秒数后执行指定代码var myVar = null; //全局
function myFunction()
{
myVar=setTimeout(function(){alert("Hello")},3000);
}
function myStopFunction()
{
clearTimeout(myVar); //停止执行
}
函数节流(throttle)规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。<button onclick="myFunction()">点击</button>
<script>
// 节流函数
function throttle(fun, delay) {
let last, deferTimer
return function (args) {
let that = this
let _args = arguments
let now = +new Date()
if (last && now < last + delay) {
clearTimeout(deferTimer)
deferTimer = setTimeout(function () {
last = now
fun.apply(that, _args)
}, delay)
}else {
last = now
fun.apply(that,_args)
}
}
}
function myFunction() {
throttle(() => {
...
}, 1000)
}
</script>
高程中的经典代码:
function throttle(method, context) {
clearTimeout(method.tId);
method.tId = setTimeout(function () {
method.call(context);
}, 100)
}
应用场景:1)鼠标不断点击触发,mousedown(单位时间内只触发一次)2)监听滚动事件,比如是否滑到底部自动加载更多,用throttle来判断3)视频播放节点上报函数防抖(debounce)在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。function debounce(fun, delay) {
return function (args) {
let that = this
let _args = args
clearTimeout(fun.id)
fun.id = setTimeout(function () {
fun.call(that, _args)
}, delay)
}
}
debounce(ajax, 500)
应用场景:search搜索联想,用户在不断输入值时,用防抖来节约请求资源。window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次
自我介绍:大家好,我是吉帅振的网络日志;微信公众号:吉帅振的网络日志;前端开发工程师,工作4年,去过上海、北京,经历创业公司,进过大厂,现在郑州敲代码。JS函数专栏1【JS函数】JS函数之普通、构造、闭包函数2【JS函数】JS函数之定时器函数3【JS函数】JS函数之防抖、节流函数
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
分类专栏
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐

我要回帖

更多关于 c语言是从什么函数开始执行 的文章

 

随机推荐