클릭 한 후 페이지가 다시로드되므로 클릭 한 마지막 항목을 추적 할 수 있으므로 로컬 저장소를 사용하고 있습니다.
사용중인 메모리를 줄이기 위해 localStorage를 지우려고했으나 사용량이 10 분 미만인 경우 이미 1.000.000K입니다.
이 스크립트는 페이지가 다시로드 될 때마다 다른 위치에서이 변수를 다시 선언합니까?
메모리가 너무 많이 사용되는 이유는 무엇입니까?
이것은 내 전체 코드입니다.
크롬을 만들기위한 확장 프로그램입니다. 옵션을 선택하고 버튼을 클릭하고, 버튼이 양식을 제출하고, 페이지를 다시로드하며, 반복해서 반복합니다. 크게 메모리 소비를 감소하지만, 시간, 메모리가 제기 한 VAR 선언하지 않고, 코드 업데이트많은 메모리를 사용하는 간단한 함수
var last = localStorage.getItem('last');
var current = getNext(last);
var prox = getNext(current);
localStorage.clear();
$('select[name="myselect"] option').each(function(){
if($(this).val().indexOf(current)>-1){
$(this).prop('selected', true);
$('.abc').first().click();
localStorage.setItem('last',current);
}
});
function getNext(current){
var arrIds = ['227','228','229','230','231','232'];
return arrIds[arrIds.indexOf(current)+1] || '227';
}
(10 분은 160.000K에서 240.000K에 갔다) :
$('select[name="myselect"] option').each(function(){
if($(this).val().indexOf(getNext(localStorage.getItem('last')))>-1){
$(this).prop('selected', true);
$('.abc').first().click();
localStorage.setItem('last',getNext(localStorage.getItem('last')));
}
});
function getNext(current){
var arrIds = ['227','228','229','230','231','232'];
return arrIds[arrIds.indexOf(current)+1] || '227';
}
이 코드가 관찰 된 메모리 소비를 담당 할 수있는 것처럼 보지 않습니다. – Pointy
"페이지가 다시로드됩니다"라고 말하면 실제로 다시로드합니까 아니면 어떻게 든 내용을 업데이트하고 있습니까? 위의 코드를 제거하면 누출이 수정됩니까? –
Pointy, 이것이 내 코드 다. Squint는 클릭이 실제로 수행 될 때 페이지가 실제로 다시로드되므로 vars를 사용하지 않으려 고합니다. – BernardoLima