Tại sao nó không thực tế để mong đợi tất cả các trình duyệt hỗ trợ các tiêu chuẩn giống nhau? [đóng cửa]


12

Lý tưởng nhất là chúng ta sẽ có các trình duyệt khác nhau hỗ trợ cùng một tiêu chuẩn và cùng một mã tạo ra cùng một kết quả trên tất cả các trình duyệt.

Điều đó chưa xảy ra. Những lý do tại sao?


1
"Cùng một mã tạo ra kết quả giống nhau trên tất cả các trình duyệt." - đó không phải là những gì các tiêu chuẩn dành cho. "Cùng một mã hoạt động dự đoán trên tất cả các trình duyệt" gần hơn.
tdammers

1
Tôi đã hỏi câu hỏi này trong nhiều năm
billy.bob

1
Thật không may, không ... Tôi đã hy vọng điều này trong một thời gian dài.
Corv1nus

Chỉ một lần web như chúng ta biết nó đã chết như gopher.
dmckee --- ex-moderator mèo con

Bởi vì W3C là một tổ chức hoạt động khủng khiếp không thể theo kịp tốc độ của công nghệ. Nó khá là nhiều.
Jordan

Câu trả lời:


18

Không, nó không thực tế, bởi vì thông số kỹ thuật đôi khi khó hiểu và mọi người đều hiểu điều gì đó khác biệt so với những người khác. Rốt cuộc chúng ta chỉ là con người. Chỉ có thể có một tiêu chuẩn thực sự khi chỉ có một nhà cung cấp với một phiên bản sản phẩm.

Joel đã viết một bài viết xuất sắc về chủ đề này, được gọi là Tai nghe sao Hỏa .

Tôi nghĩ rằng tôi sẽ trích dẫn anh ấy ở đây, vì đây là lời giải thích tốt nhất về lý do tại sao chúng tôi sẽ không bao giờ thấy điều này miễn là các nhà cung cấp khác nhau có liên quan:

Những tài liệu đó là siêu khó hiểu. Thông số kỹ thuật có đầy đủ các câu lệnh như Tháng Nếu hộp khối anh chị em (không nổi và không được định vị tuyệt đối) theo hộp chạy, hộp chạy trở thành hộp nội tuyến đầu tiên của hộp khối. Một run-in không thể chạy vào một khối đã bắt đầu với một run-in hoặc chính nó là một run-in. Mỗi khi tôi đọc những thứ như vậy, tôi tự hỏi làm thế nào bất cứ ai tuân thủ chính xác thông số kỹ thuật.

Ngoài ra, có sự cạnh tranh và tiến hóa trên thị trường. Lấy hộp tự động hoàn thành chẳng hạn. Mọi trình duyệt chính đều có sẵn chúng, nhưng không có tiêu chuẩn nào được xác định. W3C quá chậm và vào thời điểm tiêu chuẩn xuất hiện, đã có 5 triển khai khác nhau với các hành vi khác nhau ngoài tự nhiên, mà bạn cũng cần phải hỗ trợ, nếu bạn muốn cạnh tranh. Một ví dụ điển hình khác cho vấn đề này là việc nhúng video.

Điều đó nói rằng: Miễn là bạn cần hỗ trợ các trình duyệt và môi trường khác nhau, hãy chuẩn bị để thực hiện các điều chỉnh.


11

Không, bởi vì W3C trong nhiều thông số kỹ thuật giao trách nhiệm triển khai ở đâu đó cho những người triển khai UA (người thực hiện trình duyệt). Tại sao tôi nói vậy, bởi vì tôi thường viết các bài viết của mình trực tiếp từ thông số kỹ thuật của W3C và xem các trường hợp này. Ví dụ: W3C nói rằng các trình duyệt nên có sự đồng ý của người dùng về việc chia sẻ vị trí của họ (thông qua API vị trí địa lý ), nhưng không nói họ nên yêu cầu như thế nào. Điều này có thể dẫn đến các loại thông báo khác nhau được hiển thị khác nhau (cửa sổ bật lên, trượt xuống, v.v.) trong các trình duyệt khác nhau.

Nói chung, chúng ta có thể nói rằng:

Miễn là có một số thực thi yêu cầu đa nguyên , tính nhất quán giữa các trình duyệt là khó đạt được .

Chúng tôi chỉ có thể thấy các trình duyệt nhất quán khi W3C bắt buộc phải cho người thực hiện trình duyệt biết phải làm gì.


Tốt, Saeed =) +1
Falcon

Cảm ơn @Falcon. Đây là loại câu hỏi của tôi hai. Tuy nhiên, cái đó đã nhận được nhiều phiếu bầu và đã bị xóa: D. Tôi nghĩ rằng tất cả chúng ta đều biết rằng về mặt này, IE là trình duyệt không chuẩn nhất.
Saeed Neamati

7

Sẽ không xảy ra trong các hình thức bạn mô tả.

Tuy nhiên; nếu bạn viết mã một cách bảo thủ, sẽ không mất nhiều thời gian để viết mã hoạt động đáng tin cậy và có thể dự đoán được trên tất cả các trình duyệt mới. Chúng ta đã đi được một chặng đường dài trong thập kỷ qua - ngay cả IE hiện đang thực hiện một tập hợp lớn các khuyến nghị W3C một cách chính xác, đủ để thực sự tạo ra các trang web không biết trình duyệt.

Tất nhiên, nếu bạn muốn thực hiện những điều không có trong đề xuất hoặc sử dụng các tính năng được suy đoán một cách mơ hồ hoặc vẫn được triển khai không chính xác (hoặc hoàn toàn không), thì bạn phải tự mình thực hiện.


1

Điều đó cực kỳ khó xảy ra sớm - thực tế, tôi đã đi xa để nói rằng khi / nếu nó xảy ra, đó là dấu hiệu mạnh mẽ cho thấy thế giới đã chuyển sang và đơn giản là không quan tâm nhiều đến trình duyệt web nữa .

Vấn đề khá đơn giản: hầu hết các giới hạn trong việc viết các tiêu chuẩn mới cho những điều thậm chí mát mẻ hơn mà các trình duyệt có thể làm, là thiếu sự phù hợp (thậm chí hợp lý) với các tiêu chuẩn hiện có. Nhìn từ một hướng hơi khác, các trình duyệt phút tuân theo các tiêu chuẩn hiện có (hoặc thậm chí gần hợp lý với việc tuân thủ), gần như chắc chắn rằng ít nhất một vài người sẽ bắt đầu nghĩ "Nhưng sẽ không hay nếu chúng ta không có thể ... ", và sau đó họ sẽ thực hiện một trong hai điều sau: họ sẽ thực hiện ý tưởng của mình trong một trình duyệt, và sau đó làm việc chuẩn hóa ý tưởng của họ (gần như chắc chắn trước khi bất kỳ trình duyệt nào khác thực hiện nó), hoặc họ sẽ làm việc để viết một tiêu chuẩn cho hành vi đó, mặc dù chưa có trình duyệt nào thực hiện nó.

Điểm mấu chốt là việc triển khai các tiêu chuẩn trên các trình duyệt gần như không thể tránh khỏi việc phát minh ra các tiêu chuẩn mới phù hợp. Cách duy nhất mà tất cả các trình duyệt có thể bắt kịp là nếu mọi người bỏ viết / thiết kế những thứ mới để trình duyệt thực hiện.

Đồng thời, tôi cảm thấy bắt buộc phải chỉ ra rằng điều ngược lại ít nhiều cũng đúng: đây là một bộ tiêu chuẩn không ngừng phát triển mà các trình duyệt tuân thủ chặt chẽ hơn bao giờ hết. Cách đây không lâu, điểm số tốt nhất mà bất kỳ trình duyệt nào đạt được trong bài kiểm tra Acid3 là 93/100. Khi điều đó xảy ra, đó chính xác là cùng số điểm mà IE hiện đang đạt được ...


0

Lý tưởng nhất là chúng ta sẽ có các trình duyệt khác nhau hỗ trợ cùng một tiêu chuẩn và cùng một mã tạo ra cùng một kết quả trên tất cả các trình duyệt.

Điều đó đặt ra câu hỏi tại sao chúng ta cần các trình duyệt khác nhau. Nếu tất cả đều làm cơ bản cùng một điều thì một trình duyệt sẽ là đủ cho tất cả. Đó thực sự sẽ là lý tưởng. Không còn sự trùng lặp vô ích của nỗ lực và không còn mã cụ thể của trình duyệt. Mọi người cuối cùng có thể bắt đầu xây dựng trên một nền tảng vững chắc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.