2010-02-21 4 views
15

GMail이 따르는 클라이언트 측 아키텍처의 장점은 무엇인지 궁금합니다. 페이지에서 여러 iframe의 장점은 무엇입니까? 하나는 HTML 레이아웃이고 두 번째는 모든 자바 스크립트입니다.Gmail의 클라이언트 측 웹 아키텍처의 장점은 무엇입니까?

모든 DOM 작업을 실행하는 것이 더 복잡하지 않습니까? (너는 jrs ifram < -> 정상 < -> html iframe를 찾을 필요가있다).

전문가의 의견은 무엇입니까?

+0

"s/How/What"라고 생각합니다. – glasnt

+0

@TomatoSandwich : 질문에 "방법"이 없습니다. 아무것도 대체되지 않습니다! (편집 : 내 실수! 질문이 편집되었습니다. 그래서 대신 vi 또는 비슷한 명령을 사용하여 변경 효과를 얻으려는 당신을 잘합니다!). –

답변

7

요약하면 클라이언트 측 성능입니다.

Gmail에는 많은 Javascript (약 700KB)가 있기 때문에 다운로드하고 모든 것을 실행하는 데 시간이 걸립니다. 별도의 iframe을 사용하면 Javascript를 다운로드하여 실행해도 브라우저 UI가 차단되지 않습니다. 별도의 iframe에있는 스크립트와 UI 이벤트는 널리 사용되는 브라우저에서 동시에 실행됩니다. 이 방법을 사용하면 다른 iframe 에있는 인터페이스에 대한 완전한 DOM을 구성 할 수 있으며 스크립트가 아직 실행 중입니다. This article describes 차단 스크립트 문제에 대한 일반적인 해결책.

브라우저 기록을 사용하려면 다른 iframe이 필요합니다. 정확히 작동하는 방법은 Google 클로저 라이브러리의 implementation에서 확인할 수 있습니다.

올바른 DOM이 조작되는지 확인하는 복잡성에 미치는 영향 : GMail의 UI 구성 요소 생성자 (클로저 라이브러리의 일부 임)는 모두 선택적인 DOM 도우미 인수를 사용합니다.이 도우미는 다른 프레임에있을 수있는 특정 DOM에 바인딩됩니다. 다른 UI를 조작하는 것은 이러한 UI 구성 요소의 디자인에 완전히 포함되어 있습니다.

4

리버스 아약스에 사용되는 "무한 프레임"입니다 (클라이언트가 서버에 무언가를 묻는 정상적인 아약스와는 달리 이벤트가 발생하면 서버가 클라이언트에 메시지를 보냅니다). wikipedia에서 :

동적 웹 응용 프로그램에 대한 기본 기술 ( 웹 사이트가 하나의 HTML 다른 내부 문서를 포함 할 수 있습니다 인라인 프레임) 숨겨진 IFrame을 HTML 요소를 사용하는 것입니다. 이 보이지 않는 IFrame은 청크로 된 블록으로 전송되며, 이는 암시 적으로 길이라고도합니다. (때로는 "영원한 프레임"이라고도 함). 이벤트가 발생하면 iframe은 브라우저에서 이 실행되도록 자바 스크립트를 포함하는 스크립트 태그로 점차적으로 채워집니다. 브라우저는 HTML 페이지 을 점진적으로 렌더링하기 때문에 각 스크립트 태그는 수신시 실행되는 입니다.

IFrame 방식의 장점 중 하나는 이며 모든 공용 브라우저에서 작동합니다. 이 기술의 두 가지 단점은 신뢰할 수있는 오류 처리 메서드가없고 요청 상태를 추적 할 수 없음 ( 호출 프로세스)입니다.

+0

그것은 반물질 15의 게시물을 참조하십시오. 예를 들어, 서버가 클라이언트에 새 이메일 경고를 보내는 경우 iframe에 자바 스크립트가 추가되지 않습니다. – molf

5

저는 "역방향 아약스"푸시에 사용되는 iframe이 아니라고 확신합니다. Gmail은 Google Closure Library의 goog.net.BrowserChannel 시스템을 사용하여이를 처리하고 xhr 및 activex html 파일 전송을 사용합니다. (참조 : http://closure-library.googlecode.com/svn/docs/class_goog_net_BrowserChannel.html)

내가 아는 한 그게 전부지만, 적어도 하나의 프레임이 역사를 관리하기위한 것 같아.

관련 문제