2010-02-21 33 views
15

Tôi đã tự hỏi lợi thế của kiến ​​trúc phía khách hàng là gì. Ý tôi là lợi thế của nhiều iframe trên trang; một với bố trí html và thứ hai với tất cả các javascripts?Lợi thế của kiến ​​trúc web phía khách hàng của Gmail là gì?

Việc xử lý tất cả các hoạt động DOM có phức tạp hơn không? (bạn cần phải tìm kiếm máng js ifram < -> top < -> iframe html).

Các chuyên gia nghĩ gì?

+0

Tôi nghĩ "s/How/What" – glasnt

+0

@TomatoSandwich: Không có "Cách thực hiện" trong câu hỏi. Không có gì sẽ được thay thế! (Edit: sai lầm của tôi! Câu hỏi đã được chỉnh sửa. Vì vậy, thay vào đó tôi nói tốt về bạn để thực hiện thay đổi với một lệnh vi hoặc như!). –

Trả lời

7

Tóm lại: cho hiệu suất phía máy khách.

Vì Gmail có nhiều Javascript (khoảng 700 KB), phải mất một chút thời gian để tải xuống và chạy mọi thứ. Bằng cách sử dụng khung nội tuyến riêng biệt, việc tải xuống và chạy Javascript sẽ không chặn giao diện người dùng trình duyệt. Các kịch bản và sự kiện giao diện người dùng trong iframe riêng biệt sẽ được thực thi song song bởi các trình duyệt phổ biến. Cách tiếp cận này cũng cho phép bạn tạo DOM hoàn chỉnh cho giao diện trong iframe khác trong khi các tập lệnh vẫn đang được thực thi. This article describes các giải pháp phổ biến cho vấn đề chặn-tập lệnh.

Một khung nội tuyến khác là bắt buộc để cho phép lịch sử trình duyệt hoạt động. Cách hoạt động chính xác có thể được thấy trong implementation trong Thư viện đóng cửa của Google.

Đối với tác động đến độ phức tạp của việc đảm bảo đúng DOM được điều khiển: các nhà xây dựng các thành phần giao diện người dùng trong GMail (cũng là một phần của Thư viện đóng cửa) đều có một đối số trình trợ giúp tùy chọn DOM.Trình trợ giúp này được liên kết với một DOM cụ thể, có thể nằm trong một khung khác. Thao tác với các DOM khác nhau được xây dựng hoàn toàn vào thiết kế của các thành phần giao diện người dùng này.

4

Đó là "khung không giới hạn" được sử dụng cho ajax ngược (máy chủ gửi thư đến máy khách khi sự kiện xảy ra, trái ngược với ajax bình thường nơi máy khách hỏi máy chủ). Từ wikipedia:

Một kỹ thuật cơ bản cho web động ứng dụng là sử dụng một ẩn IFrame phần tử HTML (một khung nội tuyến, mà cho phép một trang web để nhúng một HTML tài liệu bên trong khác). Khung nội tuyến vô hình này được gửi dưới dạng khối chẻ, được khai báo rõ ràng là dài vô hạn (đôi khi được gọi là "khung vĩnh viễn"). Khi sự kiện diễn ra, khung nội tuyến đang dần được lấp đầy với các tập lệnh , chứa JavaScript là được thực thi trong trình duyệt. Bởi vì trình duyệt hiển thị các trang HTML theo từng bước, mỗi thẻ tập lệnh là được thực thi khi nhận được.

Một lợi ích của phương pháp IFrame là rằng nó hoạt động trong mọi trình duyệt thông thường. Hai nhược điểm của kỹ thuật này là thiếu phương thức xử lý lỗi đáng tin cậy và không thể theo dõi theo dõi trạng thái yêu cầu quy trình gọi.

+0

Đó không phải là nó, xem bài viết của antimatter15. Không có Javascript được gắn vào iframe khi máy chủ gửi thông báo email mới cho máy khách, ví dụ. – molf

5

Tôi khá chắc chắn đó không phải là iframe được sử dụng để đẩy công cụ "đảo ngược ajax". Gmail sử dụng hệ thống goog.net.BrowserChannel của Google Closure Library để xử lý chúng và sử dụng các phương tiện vận chuyển htmlfile xhr và activex. (Xem: http://closure-library.googlecode.com/svn/docs/class_goog_net_BrowserChannel.html)

Đó là tất cả những gì tôi biết chắc chắn, nhưng tôi đoán ít nhất một trong các khung hình sẽ là để quản lý lịch sử.

Các vấn đề liên quan