Computer >> Máy Tính >  >> Phần mềm >> Các trình duyệt

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Khi bạn duyệt web, không có gì lạ khi bạn bắt gặp các trang web trông khác nhau từ thiết bị này sang thiết bị khác. Có lẽ một số tính năng hoàn toàn không hoạt động.

Thông thường, đây không phải là vấn đề với trang web. Đó là trình duyệt của bạn. Năm trình duyệt máy tính để bàn chính sử dụng bốn "công cụ kết xuất" khác nhau để hiển thị trang web - trình duyệt Microsoft Edge mới dành cho Windows 10 sẽ giới thiệu trình duyệt thứ năm - và mỗi trình duyệt hoạt động khác nhau.

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Điều đó có nghĩa là trải nghiệm web của bạn có thể thay đổi tùy thuộc vào trình duyệt bạn đang sử dụng và thậm chí cả phiên bản của trình duyệt đó.

Công cụ kết xuất là gì?

Trang web không phải là một thực thể duy nhất được tải xuống và hiển thị trên màn hình từng pixel một. Thay vào đó, về cơ bản nó là một loạt các hướng dẫn được viết bằng nhiều loại mã khác nhau - HTML, CSS, JavaScript, PHP và những thứ khác - cho trình duyệt biết phải làm gì, ở đâu và làm như thế nào.

Mỗi trình duyệt sử dụng một công cụ kết xuất, đôi khi còn được gọi là công cụ bố cục, để lấy nội dung và thông tin kiểu có trong mã và hiển thị trên màn hình ở dạng được định dạng đầy đủ.

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Vấn đề là, không có một công cụ kết xuất nào được sử dụng trong mọi trình duyệt. Và trong khi mỗi ngôn ngữ được xác định bởi một thông số kỹ thuật chi tiết, công cụ chỉ có thể đưa ra cách giải thích về thông số kỹ thuật đó.

Đặc biệt, với CSS (mã cung cấp thông tin về kiểu dáng), không có engine nào tạo ra kết quả chính xác giống nhau. Đôi khi, sự khác biệt có thể chỉ đến pixel bị lệch lẻ ở đây hoặc ở đó, nhưng đôi khi chúng có thể khác nhau hoàn toàn.

Trình duyệt nào sử dụng động cơ nào

Có bốn công cụ kết xuất chính mà các trình duyệt phổ biến nhất sử dụng.

  • WebKit: một công cụ mã nguồn mở được Safari sử dụng trên OS X và iOS, cũng như nhiều trình duyệt khác trên thiết bị di động, bao gồm cả trình duyệt Android gốc;
  • Nháy mắt: một công cụ mã nguồn mở dựa trên WebKit, nó hỗ trợ Chrome, Opera, Amazon Silk và WebView của Android (trình duyệt mở trong ứng dụng);
  • Tắc kè: một công cụ mã nguồn mở được phát triển bởi Mozilla Foundation, nó được sử dụng bởi Firefox;
  • Cây đinh ba: một công cụ độc quyền do Microsoft phát triển và được sử dụng trong Internet Explorer. Trình duyệt Microsoft Edge sẽ sử dụng phiên bản mới hơn có tên là EdgeHTML.

Tiêu chuẩn Web

Khoảng cách giữa các công cụ kết xuất khác nhau nhỏ hơn nhiều so với khi Internet Explorer là trình duyệt thống trị.

Các bài kiểm tra như acid3 cho thấy trình duyệt hiển thị một trang chính xác như thế nào và hầu hết các trình duyệt hiện đại đều đạt điểm cao. Tuy nhiên, việc tuân thủ các tiêu chuẩn là một nhiệm vụ vô cùng phức tạp.

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Các thông số kỹ thuật cho HTML, CSS và những thứ khác là rất lớn. Các yếu tố mới được thêm vào; những cái cũ hơn, không sử dụng hoặc lỗi thời bị loại bỏ. Có thể mất nhiều thời gian để các công cụ kết xuất phản ánh những thay đổi này.

Một số phần tử trong thông số kỹ thuật HTML5 và CSS vẫn không được bất kỳ trình duyệt chính thống nào hỗ trợ, một số phần tử chỉ được hỗ trợ một phần, trong khi những phần tử khác vẫn được một số trình duyệt hỗ trợ nhưng không phải tất cả.

Trang web html5test.com cho phép bạn kiểm tra trình duyệt của mình và phiên bản cụ thể mà bạn đang chạy, để xem nó hỗ trợ tốt như thế nào cả các tính năng chính thức và thử nghiệm của HTML5. Tại thời điểm viết bài, Chrome được xếp hạng là trình duyệt tốt nhất trong số các trình duyệt chính, với Internet Explorer (v11) xếp hạng thấp nhất.

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Nếu một nhà phát triển web sử dụng một tính năng được hỗ trợ trong một trình duyệt này mà không phải một trình duyệt khác, thì trình duyệt không được hỗ trợ phải giải quyết một cách tương đương hoặc bỏ qua hoàn toàn tính năng này (ví dụ:một hộp trong suốt có thể được hiển thị là không trong suốt).

Điều này làm cho công việc hiển thị các trang web phức tạp hơn nhiều so với những gì nó xuất hiện. Trình duyệt được cập nhật thường xuyên hơn có khả năng tuân thủ các tiêu chuẩn hơn một trình duyệt không tuân thủ, như được đánh dấu bởi các bản cập nhật Chrome tự động thường xuyên so với các bản cập nhật IE thưa thớt hơn nhiều.

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Và còn có những yếu tố khác nữa.

  • Lỗi trong động cơ: Công cụ kết xuất là phần mềm và tất cả phần mềm đều có lỗi. Mặc dù các lỗi nghiêm trọng sẽ được tìm thấy và xử lý nhanh chóng, nhưng không thể đảm bảo rằng một tổ hợp mã cụ thể trên một trang web sẽ không tạo ra kết quả không mong muốn khi hiển thị
  • Lỗi trong trang web: Các trình duyệt được tích hợp sẵn một mức khả năng chịu lỗi nhất định, nhưng điều này sẽ khác nhau giữa các công cụ. Một trang web có lỗi trong mã vẫn có thể hiển thị hoàn hảo trên một trình duyệt nhưng lại bị hỏng một cách khủng khiếp trong một trình duyệt khác
  • Phông chữ: Cách các kiểu chữ được hiển thị không phải do trình duyệt xử lý mà do hệ điều hành. Windows và OS X hiển thị phông chữ khác nhau, vì vậy, ngay cả cùng một phông chữ trong cùng một trình duyệt cũng có thể trông khác nhau khi xem trên các nền tảng khác nhau
  • Kế thừa: Các trình duyệt thường sẽ áp dụng các tính năng mới, đặc biệt là cho CSS, trước khi chúng trở thành một phần của thông số kỹ thuật chính thức. Nếu việc triển khai tính năng thay đổi khi nó được thông qua, thì nhà phát triển trình duyệt cần quyết định xem có nên áp dụng thay đổi và có nguy cơ phá vỡ khả năng tương thích với hàng nghìn trang web được thiết kế cho phiên bản cũ hay hoàn toàn bỏ qua phiên bản mới
  • Các tính năng độc quyền: Một số trình duyệt có thể sử dụng các công nghệ độc quyền không có sẵn ở nơi khác. Điều này nổi tiếng nhất với khung ActiveX của Microsoft trong Internet Explorer, mặc dù công ty sẽ không sử dụng nó trong trình duyệt Microsoft Edge mới

Kết thúc

Với rất nhiều vấn đề liên quan, không có gì ngạc nhiên khi sự khác biệt trong cách trình duyệt xử lý các trang web vẫn tồn tại.

Làm thế nào để các trình duyệt hiển thị các trang web, và tại sao chúng không bao giờ giống nhau?

Tình hình đang được cải thiện, nhưng không có khả năng được giải quyết hoàn toàn. Sẽ rất hữu ích nếu mọi người chạy phiên bản mới nhất của trình duyệt mà họ đã chọn, nhưng với Internet Explorer 8 sáu năm tuổi vẫn duy trì thị phần 4,5%, đó là một chặng đường dài.

Bạn sử dụng trình duyệt nào và bạn có cập nhật nó không? Bạn có tìm thấy bất kỳ trang web nào không hoạt động trong trình duyệt bạn đã chọn không? Hãy cho chúng tôi biết trong phần nhận xét.

Tín dụng hình ảnh:Thiết bị qua Jeremy Keith, Trình duyệt không được hỗ trợ qua Duncan Hill