2010-11-15 32 views
20

Tôi có cần thử nghiệm hiển thị trang web của mình trong cả Chrome và Safari mặc dù thực tế là cả hai trình duyệt đều triển khai công cụ hiển thị Webkit bên dưới?Tôi vẫn cần thử nghiệm hiển thị trong cả Chrome và Safari nếu cả hai đều sử dụng Webkit?

Đây có phải là cảnh sát của nhà phát triển hoặc giả định hợp lệ để thực hiện không?

Tôi đặc biệt hỏi về việc liệu các trang trên trang web của tôi sẽ hiển thị giống nhau trong cả hai trình duyệt và liệu Javascript của tôi có hoạt động trên cả hai trình duyệt hay không.

+1

Câu hỏi hay. Tôi cũng quan tâm nếu câu trả lời tương tự áp dụng trên các nền tảng Windows/Mac/Linux. –

+2

có! Phần mềm rất phức tạp và có quá nhiều phần trong trình duyệt, kiểm tra là cách duy nhất bạn có thể chắc chắn. –

Trả lời

14

Có một số khác biệt nhỏ, vì vậy tôi sẽ kiểm tra cả hai. Một số ví dụ:

  • Theo mặc định Safari có cookie của bên thứ ba bị vô hiệu hóa, nhưng Chrome được bật theo mặc định.
  • Safari không lưu trữ <noscript> nội dung trong DOM, Chrome thực hiện
  • Chrome giúp mỗi cửa sổ trình duyệt được sandbox trong quy trình hệ điều hành của riêng nó (mô hình nhiều quá trình). Safari giữ tất cả các cửa sổ trong một quá trình. [Lưu ý mặc dù: WebKit2 sắp tới sẽ có hỗ trợ cho mô hình đa tiến trình được tích hợp sẵn].
  • Chrome sử dụng công cụ javascript V8, Safari sử dụng Nitro.

Tôi biết có một vài khác biệt khác mà tôi đã gặp phải, nhưng tôi không thể nhớ chúng trên đỉnh đầu. Tôi sẽ cập nhật bài đăng này nếu có xảy ra với tôi.

+3

Trong thực tế, trong quá trình phát triển, tôi sẽ chỉ chuyển đổi giữa Chrome, Firefox và IE 7 (giúp tôi) trong máy ảo, đảm bảo mọi thứ hoạt động - nếu bạn có nó, những vấn đề trong các trình duyệt khác rất hiếm. Tôi chỉ quay lại và kiểm tra các trình duyệt khác (Safari, IE 6, IE 8, đôi khi di động) ngay trước khi triển khai sang sản xuất. Nhưng tôi * làm * kiểm tra. –

+1

Tôi nghĩ rằng họ có thể có nhiều sự khác biệt bên ngoài các công cụ dựng hình/kịch bản chính xác: ngoài những khác biệt chính sách/phân tích cú pháp đơn giản như bạn đề cập, Safari có sử dụng cùng một mô hình đa tiến trình không? Họ có thực hiện tất cả các API có thể truy cập JavaScript giống nhau (công nhân, cơ sở dữ liệu, v.v.) không? – SamB

+1

@SamB, Tốt về mô hình đa tiến trình của Chrome. Tôi đã thêm vào câu trả lời. Và về javascript, tôi nghĩ rằng bạn là chính xác - Tôi chắc rằng tôi đã gặp phải một vài sự khác biệt về vật liệu trong các công cụ javaScript của họ trong quá khứ, nhưng tôi thành thật không thể nhớ lại những khác biệt này là gì. –

9

Họ sử dụng công cụ JavaScript khác nhau, Chrome: V8, Safari: Nitro

5

Mỗi trình duyệt có thể chọn để bao gồm các tính năng khác nhau của webkit trong các phiên bản cuối cùng của họ, vì vậy họ không luôn luôn giống nhau.

+1

Không chỉ vậy, nhưng tôi tin rằng webkit của Chrome thường có các bản vá chưa được tạo ra ở trên (chưa). Và ai biết liệu "cổng" của họ sẽ thay đổi hiển thị đáng kể - bên cạnh trường hợp hiển nhiên của bất kỳ điều khiển GUI gốc nào, ý tôi là :-). – SamB

3

Ngay cả các phiên bản Chrome khác nhau sẽ hoạt động khác nhau, tương tự cho các phiên bản Safari khác nhau. Vì vậy, tôi sẽ không sử dụng giả định này, và sẽ thử nghiệm trong cả hai trình duyệt.

+0

May mắn thử nghiệm cùng một điều trong nhiều phiên bản của chrome, mặc dù ;-) – SamB

+1

Ồ, một ví dụ tôi đã nhận thấy: có vẻ như hành vi của Chrome cho 'history.back()' trong danh sách phát 'iframe' trên http://rainwave.cc khi chỉ có một vị trí trước đó cho 'iframe' đó đã đi qua lại giữa duyệt toàn bộ tab và chỉ duyệt' iframe' đó ít nhất một vài lần. (Và mã trên rainwave.cc được cho là đã bị đóng băng trong ít nhất là hầu hết thời gian tôi thấy điều này xảy ra.) – SamB

1

Câu hỏi thú vị, tôi đã suy nghĩ về điều này trước đó. Tôi sẽ nói có, chỉ vì công cụ hiển thị chỉ là một phần của trình duyệt. Bạn cũng phải tính đến việc có nhiều phiên bản của từng trình duyệt vẫn đang được sử dụng.

Không mất quá nhiều thời gian để kiểm tra trang bằng ether, an toàn hơn sau đó xin lỗi.

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