outerHTML은 tokimon 솔루션 (복제 제외)이고 outerHTML2는 jessica 솔루션 (복제) 으로이 간단한 테스트를 수행했습니다.
console.time("outerHTML");
for(i=0;i<1000;i++)
{
var html = $("<span style='padding:50px; margin:50px; display:block'><input type='text' title='test' /></span>").outerHTML();
}
console.timeEnd("outerHTML");
console.time("outerHTML2");
for(i=0;i<1000;i++)
{
var html = $("<span style='padding:50px; margin:50px; display:block'><input type='text' title='test' /></span>").outerHTML2();
}
console.timeEnd("outerHTML2");
내 크롬 (버전 20.0.1132.57 (0)) 브라우저의 결과는
outerHTML : 81ms
outerHTML2 : 439ms
그러나 네이티브 outerHTML 함수없이 tokimon 솔루션을 사용하는 경우 (현재 거의 모든 브라우저에서 지원됨)
우리는 얻는다
outerHTML : 594ms
outerHTML2 : 332ms
실제 예제에는 더 많은 루프와 요소가 있으므로 완벽한 조합은
$.fn.outerHTML = function()
{
$t = $(this);
if( "outerHTML" in $t[0] ) return $t[0].outerHTML;
else return $t.clone().wrap('<p>').parent().html();
}
따라서 클론 방법은 실제로 랩 / 언랩 방법보다 빠릅니다
(jquery 1.7.2)