Tôi cũng là người ủng hộ dữ liệu vì chúng là cách minh bạch nhất (mã khách hàng) để triển khai nhúng dữ liệu trong các trang web.
Tuy nhiên, trước tiên chúng được sử dụng để nhúng hình ảnh nhỏ và các tài nguyên khác có thể cản trở hiệu suất do phí kết nối và cũng là parallel download limitations of HTTP/1. Sự cân bằng rất tinh tế vì mã hóa dữ liệu vì dữ liệu có thể gây ra (ước tính ballpark) là 30% increase in data size, tuy nhiên điểm quan trọng trong đó dataURIs ngừng hữu ích xung quanh kích thước của hình ảnh nhỏ, thường là các đơn đặt hàng có độ lớn trên dữ liệu tuần tự.
Điểm quan trọng ở đây đối với một trường hợp ứng dụng trang duy nhất là có nhiều hơn vòng lặp tìm nạp dữ liệu đơn lẻ để xem xét.
Nhúng dữ liệu để sử dụng bởi các script trang về HTML khác tĩnh có ý nghĩa sau đây:
- HTML chính nó không thể được lưu trữ (chỉ với một bản sao lưu trữ cho mỗi bộ dữ liệu khác nhau nhúng và mỗi phiên bản của trang.)
- Toàn bộ (nhiều phiên bản của) toàn bộ trang phải được tạo trên máy chủ cũng có kiến thức về cách lấy dữ liệu.
- Dữ liệu nội tuyến có thể chặn hiển thị trang cho đến thời gian người dùng hiểu được (điều này có thể được thực hiện bằng cách nhúng dữ liệu vào cuối HTML, nhưng thực thi tập lệnh của khách hàng có thể phải chờ hoàn toàn. hiển thị một chỉ số tải khó khăn hơn để thực hiện)
Mặt khác, giữ cho dữ liệu trên một chuyến đi vòng riêng biệt, mặc dù chuyến đi vòng chính nó, sẽ:.
- lẽ giữ thực hiện đã làm việc của bạn như nó là
- Cho phép clie nts để sử dụng HTML và tập lệnh được lưu trong bộ nhớ cache chỉ cần làm mới thay đổi phiên bản thực tế (có một đặc điểm không thành công được gọi là AppCache cho mục đích này, bây giờ được thay thế bằng thử nghiệm Service Workers)
- Cho phép HTML và tập lệnh đó hoàn toàn tài sản tĩnh có thể được phân phát từ CDN 'câm' nhanh hơn và gần hơn với trình duyệt của khách hàng và không cần phải truy vấn cơ sở dữ liệu hoặc chạy bất kỳ mã phía máy chủ nào
Tất cả những thành công lớn trong quan điểm của tôi , vì vậy tôi khuyên bạn nên nghiêm túc xem xét sự cần thiết phải nhúng dữ liệu, bởi vì nó có thể là một tối ưu hóa sớm có thể dẫn đến rất nhiều đau đớn và giảm hiệu suất thực tế! Đặc biệt vì SPDY và bây giờ HTTP/2 đã đến để giải quyết các vấn đề về số lượng chuyến đi khứ hồi và kết nối này.
Một chiến thắng lớn với HTTP là bộ nhớ đệm nặng. Đây có phải là GET có thể được lưu trữ không? Nếu vậy, không cần phải "tránh yêu cầu HTTP thứ hai" vì nó sẽ được trình duyệt lưu vào bộ nhớ cache và quay lại ngay lập tức. – Clev3r
Có, bạn nói đúng. Tôi thích caching cho bao giờ hết, kể từ khi xác nhận (ví dụ như e-Tags) sẽ làm một yêu cầu http thứ hai một lần nữa. Bình luận của bạn là tốt hing. Nếu bạn mã băm tổng hợp vào URL, tôi có thể lưu trữ dữ liệu cho bao giờ hết. – guettli