2010-09-18 25 views
6

Tôi đang trong quá trình xây dựng CMS chia sẻ video sử dụng nhiều jQuery và ajax cho mọi thứ từ các hiệu ứng giao diện người dùng phong phú để gửi và truy xuất dữ liệu đến và từ cơ sở dữ liệu. Khi JavaScript bị vô hiệu hóa, mọi thứ đều bị tách rời và 90% chức năng không hoạt động.Đôi khi có được KHÔNG làm suy giảm một cách duyên dáng?

Tôi bắt đầu nghĩ rằng không sao cho nó không bị làm suy giảm một cách duyên dáng đối với một số loại trang web nhất định như trang này sử dụng trình phát flash để phát nội dung chính - video. Vì vậy, những gì sẽ là điểm của đi đến độ dài lớn để cho phép hỗ trợ kép trên mọi thứ khác nếu nội dung chính của trang web không thể được xem. Thậm chí YouTube bị ngắt với JS bị vô hiệu hóa.

tôi đang lập kế hoạch để phát hành các CMS theo giấy phép mã nguồn mở, vì vậy câu hỏi là:

Đối với phân phối khối lượng (và cho loại chỗ) không làm giảm một cách duyên dáng là một ý tưởng tốt?

Trả lời

3

Miễn là bạn nói rõ với người dùng rằng họ cần JS được bật, bạn có thể "tách rời" mà không cần JS. Tuy nhiên, nếu bạn không đưa ra dấu hiệu cho thấy nó không hoạt động nếu không có JS, thì mọi người sẽ tức giận. Hầu hết mọi người ngày nay mong đợi các trang web yêu cầu JS trong một số khía cạnh của chức năng của họ.

Đối với nội dung phức tạp như CMS với video, đó là lỗi của người dùng nếu họ không bật JS. Họ không nên trông đợi thứ gì đó giống như công việc mà không có JS, và thậm chí nếu họ làm, nó có lẽ không đáng để bạn duy trì hai phiên bản của trang web của bạn: JS và non-JS, đặc biệt là một cái gì đó là mã nguồn mở.

+3

+1 cho "Miễn là bạn nói rõ với người dùng rằng họ cần JS được bật, bạn có thể" tách rời "mà không cần JS." Đối với tôi, điều này ** là ** thất bại một cách duyên dáng. – lonesomeday

2

Xem như ứng dụng của bạn dựa trên javascript cho toàn bộ mục đích của nó, bạn không thể làm suy giảm một cách duyên dáng. Miễn là trang web của bạn thông báo rõ ràng cho người dùng bật javascript để có được tất cả các chức năng tuyệt vời của bạn và có thể một số liên kết về cách thực hiện điều đó trong các trình duyệt khác nhau, bạn nên ổn. : D

0

Nếu bạn là người cầu toàn, không có gì sai khi cho phép mọi người biết JS đang diễn ra điều gì, trái ngược với việc cho phép trang web bị ngắt. Dưới đây là cách thực hiện nhanh: How to detect if JavaScript is disabled?.

1

Sự xuống cấp tuyệt đối không có nghĩa là "mọi thứ hoạt động hoàn toàn trong mọi trình duyệt", điều đó có nghĩa là "nếu trình duyệt của bạn không thể xử lý điều gì đó, bạn sẽ thấy điều gì đó hợp lý thay vì bị hỏng".

Trong trường hợp của bạn, chỉ cần phát hiện rằng trang web sẽ không hoạt động và hiển thị trang lỗi đẹp giải thích những gì được yêu cầu sẽ là một hình thức xuống cấp có thể chấp nhận được.

2

Về cơ bản, bạn đang chọn đối tượng. Nó không giống như quyết định có hỗ trợ IE6 hay không. Nó không phải là đúng-vs-sai, nó chỉ đơn giản là một câu hỏi về tỷ lệ phần trăm của khán giả của bạn, bạn sẵn sàng để mất, để đổi lấy sự dễ dàng phát triển về kết thúc của bạn.

Điều đó nói rằng, tôi tìm thấy progressive enhancement (trong đó sự xuống cấp duyên dáng là outcome) là một cách hiệu quả và an toàn hơn để phát triển. Làm HTML đầu tiên, làm cho nó hoạt động, sau đó thêm JS làm đường trên đầu trang.

Có khả năng một trong những người dùng của bạn không chạy Javascript. Điều gì có nghĩa là , nói cho bản thân khiêm tốn của tôi, là bạn sẽ có một số lỗi JS nhỏ mà giết chết mọi thứ. (JS có xu hướng chỉ dừng lại ngoại lệ, bạn có thể đã chú ý.)

Thật tuyệt khi biết rằng, trong trường hợp xảy ra lỗi, người dùng của bạn vẫn có thể sử dụng trang web. Đó là sự suy thoái duyên dáng, theo ý kiến ​​của tôi.

+0

Hơn nữa, * lỗi nhỏ giết chết mọi thứ * có thể không phải là lỗi của bạn. Có tất cả các loại proxy lọc, phần mềm bảo mật không có thật và tiện ích bổ sung của trình duyệt có thể làm hỏng nội dung trang của bạn xung quanh, có khả năng khiến chức năng JS bị hỏng. – bobince

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