js 떨 림 방지 와 절 류 최적화 브 라 우 저 스크롤 바 가 맨 아래로 굴 러 갈 때 더 많은 데 이 터 를 불 러 옵 니 다.
js 함수 의 떨 림 방지
한 동안 의 사건 을 거 쳐 서 야 어떤 조작 을 실 행 했 는데, 만약 시간 내 에 또 이 조작 을 실행 했다 면 시간 을 연장 하여 다시 계산 을 시작 할 것 이다.
/* input keyup */
/ * 입력 이 빠 르 면 출력 결과 가 여러 번 반 복 됩 니 다 * /
window.onload = function () {
let obj = document.getElementById('input')
obj.addEventListener('keyup',()=>{
let val = obj.value;
inputchange(val)
},false)
}
function inputchange(val) {
console.log(val)
}
// 11 11 123 123 123456 123456 123456
떨 림 방지 로 처리
/* input keyup */
/* */
window.onload = function () {
let obj = document.getElementById('input')
let callback = inputchange()
obj.addEventListener('keyup',()=>{
let val = obj.value;
callback(val)
},false)
}
//
// time inputchange
//
function inputchange() {
var time
return function(val){
if(time)
{
clearTimeout(time)
}
time = setTimeout(() => {
console.log(val)
}, 200);
}
}
js 함수 절 류
정의: 어떤 작업 을 실행 한 후 일정 시간 동안 이 작업 을 수행 하지 않 으 면 안 됩 니 다.
/* input keyup */
/* */
window.onload = function () {
let obj = document.getElementById('input')
let callback = inputchange()
obj.addEventListener('keyup',()=>{
let val = obj.value;
callback(val)
},false)
}
// hasdone
function inputchange() {
var hasdone = false
return function(val){
// hasdone = true
if(hasdone)
{
return;
}
//
console.log(val)
hasdone =true
/* hasdone */
time = setTimeout(() => {
hasdone = false
}, 2000);
}
}
위의 절 류 는 첫 번 째 입력 이 바로 실행 되 고 마지막 입력 이 실행 되 지 않 습 니 다.
그리고 첫 번 째 입력 이 바로 실행 되 지 않 고 시간 내 에 마지막 으로 실 행 됩 니 다.
/* input keyup */
/* */
window.onload = function () {
let obj = document.getElementById('input')
let callback = inputchange()
obj.addEventListener('keyup',()=>{
let val = obj.value;
callback(val)
},false)
}
// hasdone
/* , */
function inputchange() {
var hasdone = false
var time = null
return function(val){
// hasdone = true
if(hasdone)
{
return;
}
//
hasdone =true
/* hasdone */
time = setTimeout(() => {
console.log(val)
hasdone = false
}, 500);
}
}
js 브 라 우 저 스크롤 바 가 맨 아래로 굴 러 갈 때 더 많은 데 이 터 를 불 러 옵 니 다.
Document
/* onsroll */
/* */
var loadmore = loadmoreresource ();
/* */
window.onscroll = function (e) {
/* */
/* */
var e =e || window.event;
// document.body.scrollTop
/* */
var scrolltop = document.documentElement.scrollTop||document.body.scrollTop;
/* */
var scrollHeight = document.documentElement.scrollHeight||document.body.scrollHeight;
/* */
var clientHeight = document.documentElement.clientHeight||document.body.clientHeight;
/* scrolltop clientHeight scrollHeight */
if(scrollHeight === (scrolltop+clientHeight))
{
loadmore();
}
}
/* */
/* , */
function loadmoreresource () {
let i = 21;
/* */
let isloading = false;
return function () {
/* */
if(isloading) {
return;
}
/* */
loadingimg()
let obj = document.getElementById('box');
/* */
let docfragment = document.createDocumentFragment();
for(let j=0;j<5;j++){
let li = document.createElement('li')
li.append('baojia'+i)
docfragment.appendChild(li)
i++;
}
/* true */
isloading = true;
/* setTimeout api */
setTimeout(() => {
obj.appendChild(docfragment)
loadingimg()
/* false */
isloading = false
}, 3000);
}
}
/* */
function loadingimg() {
let loading = document.getElementById('loading');
if(loading.style.display==='block') {
loading.style.display = 'none';
} else {
loading.style.display = 'block';
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.