궁금합니다...
제가 알기로는 innerHtml은 표준이 아니라고 들었는데..
innerHtml을 사용하는건 안좋은건가요?
prototype.js를 사용해 보고 있는데 샘플에 innerHtml을 사용하는 코드가 있어서요.
표준이 아니라 되도록이면 안쓸려고 하는데 prototype의 샘플에 나오니까
혼란스럽네여...
innerHtml은 지양해야 하는건가요??
-
- Posts: 18
- Joined: 2005 05 23 12:39 44
- Contact:
innerHtml은 지양해야 하는건가요??
달아 달아 밝은 달아~
-
- 해커
- Posts: 691
- Joined: 2004 08 11 22:14 59
- Contact:
-
- 해커
- Posts: 1146
- Joined: 2004 01 15 20:06 36
innerHTML이 속도가 더 빠르다는 것은 직관적으로 좀 이해하기 힘듭니다. DOM을 지원하는 브라우저라면 innerHTML로 넣더라도 내부적으로 결국 DOM으로 전환해서 처리할 것 같거든요. 그렇다면, 오히려 더 시간이 오래 걸릴 것 같고요. 하긴, 영향을 주는 다른 요소가 많아서 (예를 들어, Javascript VM의 속도) 정말 측정을 해 보지 않는 한 속단할 수 없겠네요.hyeonseok wrote:성능과도 관련이 있습니다. DOM으로 노드 만들어서 붙이는 것 보다 innerHTML로 넣는 것이 더 빠릅니다.
혹시. 주요 브라우저에서 (몇 가지 다른 조건으로) 실측을 해 보신 적이 있으신지요?
-
- Posts: 3
- Joined: 2006 11 17 23:59 39
- Contact:
http://www.quirksmode.org/dom/innerhtml.html빛알갱이 wrote: 혹시. 주요 브라우저에서 (몇 가지 다른 조건으로) 실측을 해 보신 적이 있으신지요?
에서 실측 자료를 보실 수 있습니다. innerHTML 이 더 빠른 이유에 대해서 정확하게 얘기하는 사이트를 찾아보진 못했네요. 관련 자료 있으신 분 있나요?
하지만 추측은 해볼 수 있을 것 같습니다. 현석님 말씀대로 렌더링과 관련된다고 생각합니다.
DOM 함수를 사용하는 경우 함수가 호출되었을 때 Layout 계산을 다시한다고 가정해볼 수 있습니다. 100번 함수가 불리면 100번 Layout 계산이 되는 것이죠. 그에 비해 innerHTML은 렌더링 계산이 한번만 이뤄지기 때문에 DOM 함수 호출보다 빠를 것이라고 생각합니다. 만약 innerHTML 에 값을 100번 넣는다면 그것 또한 느리겠지요. Faster DHTML in 12 Steps( ttp://msdn.microsoft.com/library/default.asp?url=/workshop/author/perf/dhtmlperf.asp )에서도 innerHTML 대입을 한번만 하길 권하고 있습니다.
-
- 서포터즈
- Posts: 179
- Joined: 2005 02 25 16:03 12
- Location: Heaven
- Contact:
저는 PassionLim님이 말씀하신것으로 알 고 있습니다.PassionLim wrote:DOM 함수를 사용하는 경우 함수가 호출되었을 때 Layout 계산을 다시한다고 가정해볼 수 있습니다. 100번 함수가 불리면 100번 Layout 계산이 되는 것이죠. 그에 비해 innerHTML은 렌더링 계산이 한번만 이뤄지기 때문에 DOM 함수 호출보다 빠를 것이라고 생각합니다. 만약 innerHTML 에 값을 100번 넣는다면 그것 또한 느리겠지요. Faster DHTML in 12 Steps( ttp://msdn.microsoft.com/library/default.asp?url=/workshop/author/perf/dhtmlperf.asp )에서도 innerHTML 대입을 한번만 하길 권하고 있습니다.
innerHTML 같은경우는, 한번 Parse해주고 DOM Tree도 명확하게 생성이 안되는걸로 알 고 있습니다..그러므로 할 일이 적은것이지요..
하지만 Append, Create 같은 메소드를 사용하면 DOM Tree에 추가하기 때문에 할 일이 많아지고 그렇기때문에, 속도도 느려지게 되구요..
렌더링되는 순서(? 방법?)도 innerHTML과, Append, Create 전부 틀린걸로 알 고 있습니다.
그 중 innerHTML이 가장 이득이구요..
저는 그렇게 알 고 있습니다.
-
- Posts: 1
- Joined: 2005 08 02 18:53 46
- Contact:
-
- Posts: 1
- Joined: 2007 10 19 11:14 17
- Contact:
-
- Posts: 1
- Joined: 2004 11 09 00:14 37
- Contact:
-
- 해커
- Posts: 724
- Joined: 2005 01 31 22:33 55
- Location: 대한민국
- Contact:
Re: replaceHTML vi innerH
A안에 내용을 바꾼다면 A와 동일하되 내용(자식 엘레멘트)가 없는 A`를 만들고
A`에 새로운 내용을 채워넣고 ( A`.innerHTML = '바꿀내용' )
그리고는 A와 A`를 교체하는 것이군요.
이게 이렇게 큰 차이를 낸다니 다음에 직접 테스트해보고 진짜 그렇다면 사용해봐야겠습니다. 좋은 정보 감사드립니다.
Who is online
Users browsing this forum: No registered users and 4 guests