document.createDocumentFragment()와 js 효율 분석

document.createDocumentFragment()는 DOM 을 절약 하기 위해 서 라 고 말 했다.JavaScript 가 DOM 에 대한 작업 을 할 때마다 페이지 의 현금 화 를 바 꾸 고 전체 페이지 를 새로 고침 하여 많은 시간 을 소모 합 니 다.이 문 제 를 해결 하기 위해 문서 조각 을 만 들 고 모든 새 노드 를 추가 한 다음 문서 조각의 내용 을 document 에 한꺼번에 추가 할 수 있 습 니 다.이것 은 제 가 쓴 간단 한 테스트 페이지 입 니 다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>document.createDocumentFragment() </title>
</head>
<body>
<script type="text/javascript">
       var d1 = new Date();
       for(var i=0;i<1000;i++)
       {
              var op=document.createElement("P");
              var oText=document.createTextNode("test1");
              op.appendChild(oText);
              document.body.appendChild(op);
       }
       var d2 = new Date();
       document.write(" :" + (d2.getTime() - d1.getTime()) + "<br/>");
       //---+-----
       var d3 = new Date();
       var oFrag=document.createDocumentFragment();
       for(var i=0;i<1000;i++)
       {
              var op=document.createElement("P");
              var oText=document.createTextNode("test2");
              op.appendChild(oText);
              oFrag.appendChild(op);
       }
       document.body.appendChild(oFrag);
       //
       var d4 = new Date();
       document.write(" :" + (d4.getTime() - d3.getTime()) + "<br/>");
</script>
</body>
</html>
노드 를 document.body(또는 그 후의 노드)에 추가 하면 페이지 는 바로 이 변 화 를 반영 합 니 다.첫 번 째 소절 프로그램 에 대해 서 는 실행 에 문제 가 없 지만 문 제 는 document.body.append Child()를 열 번 호출 했 습 니 다.매번 페이지 새로 고침 이 발생 하면 많은 페이지 조각 이 생 길 수 있 습 니 다.두 번 째 소절 코드,document.body.append Child()는 한 번 만 호출 되 었 습 니 다.이 는 한 번 만 페이지 를 새로 고침 하 는 데 걸 리 는 시간 이 이전 보다 적 을 것 임 을 의미 합 니 다.나 는 세 가지 브 라 우 저 로 위의 테스트 코드 를 테스트 했 는데 대체적으로 다음 과 같은 결 과 를 얻 었 다.IE7:       방법 1 용 시:140       방법 2 용 시:125 Firefox:       방법 1 용 시:66       방법 2 차 사용 시:43Chrome:       방법 사용 시:35       방법 2 용 시:25 에서 얻 은 결 과 는 이론 적 인 것 과 일치 했다.

좋은 웹페이지 즐겨찾기