2012-03-26 4 views
1

this website에 따르면 JavaScript에서 removeChild()을 호출하면 의사 누설이라고하는 Internet Explorer Specific leak가 발생합니다.deleteCell이 의사 누출을 유발합니까?

때때로 Internet Explorer는 페이지를 사용한 후에도 항목을 메모리에 유지합니다. 사용자가 페이지를 떠난 후에 이러한 의사 누출이 해제되지만 일부 웹 페이지는 장시간 열려있을 수 있습니다. 의사 유출을 피하려면 removeChild를 사용하여 요소를 제거하지 마십시오. 대신 부모의 innerHTML을 ""로 설정하십시오.

deleteCell()은 removeChild()와 같은 방법으로 pseudo-leaks를 발생합니까?

편집 : IE8에서이 오류를 재연 할 수있었습니다. 믿거 나 말거나, Microsoft는 IE7에서이 문제를 해결했다고 주장합니다.

+0

이 deleteCell 기능/수행 불가능 대답이 무엇인지 모른 채. 그것은 표준 JS 기능이 아닙니다. –

+0

@MarcB 그것은 [row elements] (https://developer.mozilla.org/en/DOM/HTMLTableRowElement)에서'insertCell','insertRow'와 같은 범주로 정의됩니다. –

+0

@Rob W : 분명히 my google-fu는 오늘 나에게 실패했다. .. 나는 월요일을 비난한다. –

답변

2

IE 소스 코드를보고 확인하는 이점이 없지만 Chrome에서 deleteCell을 구현하는 방법과 같이 내부적으로 removeChild를 사용하여 IE의 의사 누출을 유발할 수 있다고 생각합니다. 나는 IE의 이전 버전이이 문제를 가지고 있지만, 현재 버전이 아닌지 잘 모르겠다. 크롬 소스에서

:

void HTMLTableRowElement::deleteCell(int index, ExceptionCode& ec) 
{ 
     ... 
     HTMLElement::removeChild(cell.get(), ec); 
} 
+0

deleteCell() 내부에서 removeChild()를 호출하면 충분한 증거가 될 것 같습니다. 브라우저 내부에서 호출되는 한 걱정할 필요가있을 것입니다. – Holtorf

관련 문제