iframe은 왜 이렇게 느립니까?
저는 당신에게 조금 더 긴 질문이 있습니다 - 하지만 대답이 매우 간단하기를 바랍니다 :)
링크와 iframe이 있는 매우 간단한 페이지를 가지고 있다고 가정해 보겠습니다(단순한 예).
<body>
<a href="test.html" target="mframe">open link></a>
<iframe name="mframe" [params] />
</body>
따라서 링크를 클릭하면 프레임에 test.html이 로드됩니다.
이제 iframe을 div와 ajax call로 변경하겠습니다.
<body>
<a href="doAjaxCall('test.html')">open link</a>
<div id="main-content"></div>
</body>
doAjaxCall은 단순히 GET agax 요청을 사용하여 전체 응답을 가져오고, 이를 구문 분석(JavaScript 사용)한 후 <body> 태그의 콘텐츠를 가져와 main-content.innerHTML에 넣습니다.
test.html에는 많은 html과 css 스타일이 포함되어 있습니다(그러나 상위 페이지에 있는 것과 동일). 그래서 나는 ajax 솔루션을 사용할 때 그것들이 필요하지 않습니다.
질문:.
이 Ajax 솔루션이 이렇게 빠른 이유는 무엇입니까?저는 여전히 같은 양의 데이터를 다운로드하고 있습니다(전체 test.html 다운로드).
iframe 솔루션이 왜 이렇게 느립니까?브라우저가 가능한 모든 스타일을 다시 구문 분석해야 하기 때문입니까?아니면 iframes의 다른 오버헤드가 있습니까?
브라우저에 대한 추가 오버헤드(인스턴스 및 참조 유지)가 있기 때문에 프레임 속도가 느려질 경우에는 거의 올바른 방향으로 가고 있습니다.
Ajax 호출은 데이터를 가져와서 주입하거나 원하는 것을 할 수 있기 때문에 조금 더 빠를 것입니다.iframe은 브라우저 메모리에 완전히 새로운 "페이지"를 작성한 다음 페이지에 배치해야 합니다.
Steve Souders는 고성능 웹 사이트 블로그에 Iframes Sparely를 사용하는 게시물을 게시하여 좀 더 많은 통찰력을 제공할 수 있습니다.
2009년 이후로 브라우저가 개선되었지만 브라우저가 추가 서버(iframe이 타사 콘텐츠용이라고 가정)를 타격하거나(iframe이 로컬 콘텐츠용이라고 가정) 로컬 서버를 다시 타격해야 한다는 사실은 여전히 페이지 성능에 영향을 미칩니다.일반적으로 추가 HTTP 요청은 항상 페이지 성능에 영향을 미칩니다.페이지가 로드된 후 iframe을 작성하고 iframe의 내용을 렌더링할 수 있으면 초기 페이지 로드가 향상됩니다.그러나 iframe이 추가 콘텐츠를 로드하는 동안 페이지 성능에 영향을 미칠 것으로 생각합니다.
언급URL : https://stackoverflow.com/questions/1092071/why-are-iframes-so-slow
'programing' 카테고리의 다른 글
매일 같은 시간에 작업을 수행하는 Python 스크립트 (0) | 2023.07.28 |
---|---|
검색 엔진 Lucene 대 데이터베이스 검색 (0) | 2023.07.28 |
소문자 및 대문자(jQuery 포함) (0) | 2023.07.28 |
제약 조건 레이아웃을 백분율 값으로 작동시키는 방법은 무엇입니까? (0) | 2023.07.28 |
r2dbc 및 플라이웨이를 사용하여 스프링 부트 애플리케이션에서 h2 설정 (0) | 2023.07.28 |