검색 엔진에 대해 select-all 기능을 만드는 Google 크롬 확장 프로그램이 있지만 속도가 느립니다 (1-14 초, 250-1000 결과) 더 빠른 방법이 있습니까? 내 코드는 다음과 같습니다 :체크 박스를 만드는 가장 빠른 방법
var dropdownvalue = dropdown.options[dropdown.selectedIndex].value;
if ((dropdownvalue == "createFullCheckboxes") || (dropdownvalue == "createNameCheckboxes")) {
var div_embed1 = document.getElementById('results-pane');
if (div_embed1) {
div_embed1.innerHTML = '<form id="checkbox-form">' + div_embed1.innerHTML + '</form>';
}
var i;
var x = document.getElementsByClassName('name');
for (i = 0; i < x.length; i++) {
x[i].innerHTML = '<input id="checkbox" type="checkbox">' + x[i].innerHTML + '';
}
checkedAll();
return;
}
나는이에 for 루프를 변경 시도 : for (var i = 0, len = x.length; i < len; i++){
을하지만, 단지 20ms의 차이가 있었다. CheckedAll()
은 단순히 모든 확인란을 선택하는 기능입니다.
선택한 확인란을 반복하고 실제로 select-all 작업을하는 다른 부분 (표시되지 않음)은 92ms에서 훨씬 빠르며 1000 개의 결과에도 여전히 빠릅니다.
감사합니다 : 여기 은 크롬 개발 도구에서 싹둑이다.
을 그 dom 액세스가 느리지 만 루프가 아닙니다. 루프는 dom 연산에 비해 중요하지 않습니다. 당신은 배열로 리팩터링해야 할 것입니다. 문자열을 푸시 한 다음 마지막에 결합하여 한 번의 큰 텍스트 결과를 한 번에 넣으십시오. –
DOM은 생각했지만 다른 방법을 찾지 못했습니다. 설명해주십시오. 더 자세하게? 감사합니다. –
당신은 각각의 루프 반복을 겪고 있습니다. 대신, 당신이 정의하고있는 넓은 영역 주위에 사각형을 그릴 수있는 것처럼 HTML을 완전히 만들 수 있다면 그것은 접근 방식입니다. 당신이 렌더링하는 방법에 따라 특정 접근법을 보여주기 위해 내가보기에 당신의 dom을 보여줘야한다. –