JavaScript có gây khó chịu bao giờ không?


9

Tôi đã nghĩ rằng nếu tất cả người dùng của một trang web được yêu cầu kích hoạt JavaScript, bạn có thể sử dụng JavaScript gây khó chịu không?

Tôi là tất cả để cải tiến tiến bộ, nhưng điểm quan trọng khi một ứng dụng web nâng cao trả lại người dùng nếu họ có trình duyệt cũ hoặc JavaScript bị vô hiệu hóa?

Chúng tôi có một đối tượng mục tiêu rất mỏng và chúng tôi có thể cho khán giả mục tiêu biết trình duyệt và plugin / chức năng mà họ cần phải có. Vì vậy, câu hỏi của tôi là, liệu pha trộn giữa JS và HTML có ổn không trong trường hợp đó? Giống như sử dụng các thuộc tính onclick.


1
"Nếu tất cả người dùng của một trang web được yêu cầu bật JavaScript ... nếu họ đã ... tắt JavaScript?" <- Đây là một mâu thuẫn và tôi không biết làm thế nào để đưa ra một câu trả lời hữu ích với nó chưa được giải quyết.
HedgeMage

3
Lưu ý rằng tùy thuộc vào đối tượng và thị trường mục tiêu của bạn, có thể có luật về khả năng truy cập yêu cầu trang web của bạn có thể truy cập được đối với tất cả người dùng, kể cả người khuyết tật. Điều đó có nghĩa là gì trong thực tế cho JS tôi không biết. AFAIK (IINAL) nơi tôi đang có luật như vậy nhưng vẫn chưa có trường hợp thử nghiệm để tìm ra chi tiết.
James

16
Bạn có ý nghĩa gì bởi javascript "gây khó chịu"? Tôi không quen thuộc với thuật ngữ này.
Macke

2
Vì vậy, câu hỏi của bạn về cơ bản là: Viết mã crappy bao giờ ok? Đúng vậy, đối với các nguyên mẫu và dự án đủ nhỏ và không yêu cầu bảo trì / nâng cấp sau khi hoàn thành. Nếu không, bạn sẽ chỉ tự mình đối mặt nửa năm sau, bởi vì bạn phải mất một giờ để tìm ra điều gì có thể hợp lý nếu bạn đã đầu tư thêm vài giây khi bạn đặt nó vào vị trí.
back2dos

3
Tôi nghĩ rằng câu hỏi này sẽ hỏi khi nào thay đổi kích thước cửa sổ trình duyệt của ai đó hoặc có hàng tấn cửa sổ bật lên.
whatsisname

Câu trả lời:


17

Đây là một quyết định kinh doanh hơn là một quyết định thiết kế.

Có một chi phí để cung cấp một phiên bản của trang web hoạt động mà không cần JavaScript (hoặc Flash hoặc Silverlight). Doanh nghiệp phải quyết định xem việc mất doanh thu / khách có đáng hay không.

Vì vậy, nếu chi phí 10.000 đô la để viết phiên bản này (con số có thể nằm ở phía lớn, nhưng chỉ có trong ví dụ này) thì doanh nghiệp sẽ thu lại số tiền đó trong suốt vòng đời của trang web chứ? Nếu không, sau đó không cung cấp phiên bản đó.

Tuy nhiên, nếu chỉ tốn 100 đô la để viết phiên bản này thì sẽ có ý nghĩa khi cung cấp sự xuống cấp duyên dáng.

Đã đưa ra quyết định kinh doanh chỉ nhắm mục tiêu các trình duyệt kích hoạt JavaScript và hy vọng rằng người dùng của bạn sẽ kích hoạt JavaScript, sau đó sẽ rất hợp lý để làm cho ứng dụng của bạn tận dụng các tính năng mà bạn hiện có sẵn. Điều duy nhất bạn cần làm là (như chính Stack Overflow) đưa ra một cảnh báo rằng trang web sẽ không hoạt động chính xác nếu người dùng chưa kích hoạt nó.


2
Tôi nghĩ bạn hiểu lầm tôi.
Petah

5
Bạn nên vui lòng cho chúng tôi biết "JS gây khó chịu" có nghĩa là để tránh sự hiểu lầm. Bạn đã được yêu cầu làm điều đó (tăng 7 lần)!
maaartinus

1
Trước đây, tôi đã xây dựng một số trang xuống cấp duyên dáng và thấy html và javascript kém minh bạch hơn rất nhiều, nếu bạn vẫn muốn cung cấp cho khách truy cập JS cho phép trải nghiệm người dùng tốt nhất. Các trang khó xây dựng hơn rất nhiều và tôi tin rằng anh chàng duy trì trang sẽ gặp khá nhiều khó khăn sau mã của bạn. Vì vậy, chắc chắn có một chi phí bảo trì dài hạn cần lưu ý khi ước tính chi phí để làm cho trang web của bạn xuống cấp một cách duyên dáng. Tôi thấy rằng nó rất hấp dẫn để thỏa hiệp với UX kích hoạt JS ..
Thomas Stock

1
@maaartinus, javascript khó hiểu là đối nghịch với javascript không phô trương en.wikipedia.org/wiki/Unazedrusive_JavaScript
Petah

1
OK, vì vậy tôi chỉ có thể nói ... html + js là một bệnh dịch (việc triển khai bị hỏng bỏ qua các tiêu chuẩn lạ) và tôi sẽ giảm thiểu nỗ lực như Thomas Stock đã viết. Cố gắng làm cho nó hoạt động hoàn hảo trong trình duyệt đã chọn (và không chọn IE6: D) a và có thể chịu được ở những người khác. Thay vì làm việc xung quanh tất cả các vấn đề dành thời gian của bạn cho chức năng.
maaartinus

20

Một cái gì đó không ai khác đã đưa lên

99% các trang web chào đón một khách truy cập cụ thể, một người có ít hoặc không có JavaScript. Khách truy cập đó có tên: Googlebot .

Một lý do lớn tất cả mọi người nên quan tâm đến du khách mù, cũng như vậy

Nếu bạn là một trong số rất ít người không quan tâm đến lưu lượng truy cập công cụ tìm kiếm, thì đó là đặc quyền của bạn nhưng điều đó chắc chắn không tạo nên một quy tắc chung.


4
Thật. Chúng tôi đã cải thiện một trong những trang web của mình để giúp người mù dễ tiếp cận hơn và do đó, hậu quả (ngoài ý muốn) là lưu lượng truy cập chúng tôi nhận được từ Google nhân với gần 10 lần trong một năm.
Kris

1
Vâng, nhưng trang web không dành cho công chúng. Vì vậy, bảng xếp hạng tìm kiếm không áp dụng.
Petah

3
@Petah: Bạn đã xem xét việc nêu rõ ràngngắn gọn những yêu cầu, tình huống và hạn chế chính xác của bạn trong câu hỏi thay vì bỏ qua những mẩu thông tin nhỏ ở đây và trong các bình luận chưa?
CHỈ CẦN HOẠT ĐỘNG CỦA TÔI đúng

1
Bạn không còn đúng nữa. Vì khá lâu, Googlebot chạy javascript tốt (không có gì ngạc nhiên, vì Google hoạt động cả trên động cơ V8 và angularjs).
maaartinus

8

Mọi người viết những thứ cho các môi trường nội bộ cụ thể là một lý do lớn tại sao IE6 vẫn còn tồn tại.

Nghĩ về nó


4

Nếu bạn đang làm một trang web chỉ dành cho JS (có lẽ là 'ứng dụng' trong trường hợp này là một từ tốt hơn) thì cái gọi là 'không phô trương' của JS không quan trọng lắm như trong trường hợp, khi bạn cần xuống cấp một cách duyên dáng để không Phiên bản JS.

Tuy nhiên: JavaScript được viết theo cách không phô trương nói chung dễ viết hơn (và ít nhất tôi thấy nó theo cách này) và duy trì. Việc giới thiệu các thay đổi đối với bố cục HTML sẽ không phá vỡ JS và thay đổi đối với JS mà không phải lo lắng về việc phá vỡ HTML.


4

Nếu bạn đang xây dựng một trang web, tôi sẽ giữ JavaScript không phô trương. Tuy nhiên, nếu bạn đang xây dựng một số dạng ứng dụng (như Google Docs) thì JavaScript sẽ khá khó chịu.

JavaScript và HTML5 rất tốt cho việc xây dựng các ứng dụng nếu đó là nhu cầu của bạn, nhưng nó thực sự là một lựa chọn kinh doanh.


Vâng, nó giống như tài liệu của Google hơn là một trang web. Và chúng tôi sử dụng HTML5 rất nhiều.
Petah

Sửa lỗi cho tôi nếu tôi sai, nhưng tôi nghĩ bạn vẫn có thể sử dụng hầu hết các khái niệm trong JavaScript không phô trương mà không nhất thiết phải tạo ra một mớ hỗn độn trong mã? Đó là khái niệm nổi bật và gây ồn ào nhất đối với tôi. Có lẽ bạn đang đề cập đến một số khía cạnh khác của JavaScript không phô trương mà bạn cần tránh bằng cách sử dụng HTML5, chẳng hạn như khả năng tương thích ngược với người dùng không sử dụng JavaScript? Bạn phải chọn và chọn những gì tốt nhất cho bạn và dự án, miễn là bạn có thể biện minh một cách thông minh lý do và phân tích rủi ro, thì tôi nghĩ tất cả đều tốt :) +1
jmort253

Điều tôi đang nói là trang web sẽ hoạt động như thế nào nếu Javascript bị tắt. Có một số thời điểm nó sẽ có đầy đủ chức năng (nếu có thể không tốt) và những lần khác nó sẽ thất bại hoàn toàn. Tôi không lo lắng về các trình duyệt cũ không hỗ trợ JavaScript (Netscape 1). Tất nhiên trong mọi trường hợp, không có lý do gì để viết BAD javascript
Zachary K

2

Phần lớn người dùng (người dùng của tôi, tôi không biết về người dùng của bạn) có sẵn JavaScript và được bật. Hãy cung cấp cho những người dùng đó một trải nghiệm người dùng tuyệt vời. Tuy nhiên, bạn vẫn cần cung cấp một phiên bản trang web hoạt động mà không cần Javascript. Tôi biết đó là một rắc rối để xây dựng 2 phiên bản, nhưng đó là cách nó phát triển web. (Trong thực tế, bạn có thể phải xây dựng nhiều phiên bản, một phần ba có thể là phiên bản di động của trang web của bạn).

Những gì bạn không muốn làm là thiết kế cho mẫu số ít phổ biến nhất: "Chà, có một số người dùng đã tắt Javascript nên chúng tôi sẽ thiết kế trang web của chúng tôi để hoạt động tốt cho họ - không có Javascript, hãy đánh máy chủ cho mọi thứ . " Điều này chỉ phạt phần lớn người dùng của bạn có Javascript.


Điều tôi đang nói là không có người dùng nào bị tắt JavaScript. Nếu họ làm, họ không thể truy cập trang web.
Petah

@Petah, tốt, điều đó cũng không tuyệt vời. Bạn không muốn trả lại người dùng mà không có Javascript. Vì vậy, những gì bạn đang hỏi sau đó, vì tôi đang đuổi người dùng mà không có Javascript, tôi có thể đặt JS vào cùng một tệp với HTML của mình không?
Marcie

Chúng tôi có một đối tượng mục tiêu rất mỏng và chúng tôi có thể cho khán giả mục tiêu biết trình duyệt và plugin / chức năng mà họ cần phải có. Vì vậy, câu hỏi của tôi là, trộn lẫn cả JS và HTML trong trường hợp đó. Giống như sử dụng các thuộc tính onclick.
Petah

4
@Petah, có nhiều lý do khác để tránh trộn lẫn JS và HTML. Đó là cùng một lý do chúng tôi tránh pha trộn các phong cách và HTML - phân tách các mối quan tâm. Nếu phong cách của bạn được pha trộn với cấu trúc của bạn, được pha trộn với hành vi của bạn, bạn có một cái gì đó rất khó để duy trì. Sau khi thực hiện theo cách "không phô trương" trong một thời gian, bạn sẽ thấy các tệp của mình thanh lịch như thế nào và việc thay đổi dễ dàng hơn bao nhiêu.
Marcie

2
@Petah, bạn có một tệp JS khổng lồ cho toàn bộ trang web của mình không và mọi thứ có trong đó không? Tôi có khoảng một tệp JS trên mỗi trang và nó hoạt động tốt với tôi. Những thứ thực sự "phổ biến" là tất cả những gì có trong tệp JS được chia sẻ.
Marcie

2

Bạn đã đề cập bằng cách sử dụng các thuộc tính onlick. Bạn có kế hoạch sử dụng trình xử lý sự kiện JavaScript để điều hướng trang không?

Tôi muốn đề nghị chống lại điều này vì một lý do duy nhất: nó phá vỡ nhấp chuột giữa .

Để nhấp vào liên kết thông thường, giả sử JavaScript được bật, chúng sẽ tương đương về chức năng:

<a href="#" onclick="window.location = 'myPage.htm';">Click here</a>
<a href="myPage.htm">Click here</a>

Nếu bạn cố gắng nhấp vào giữa ví dụ đầu tiên, bạn sẽ nhận được một trang trống thay vì myPage.htm.

Ngoài ví dụ này, tôi nghĩ sẽ ổn khi sử dụng JavaScript gây khó chịu nếu nó có ý nghĩa kinh doanh đối với bạn. Mất ít thời gian hơn để viết (nhưng không nhất thiết phải duy trì) JavaScript nội tuyến và việc mất cải tiến lũy tiến có thể không quan trọng trong tình huống của bạn.


Trong trường hợp này, nó không dành cho điều hướng, nó dành cho các nút như 'Làm mới', 'Xóa', 'Tạo', v.v.
Petah

Trong trường hợp đó, tôi đề nghị đó là phong cách cá nhân. Tôi thấy phương pháp gây khó chịu nhanh hơn / dễ dàng hơn để bắt đầu, nhưng cách 'chính xác' để sạch hơn và dễ bảo trì hơn. Chắc chắn có một yếu tố mờ nhạt cảm thấy tốt để làm đúng cách.
GavinH

+1 - Dễ dàng giữ sạch mã ngay từ đầu nếu không phô trương. Tôi thấy rằng nếu tôi trở nên quá lộn xộn ngay từ đầu, có thể quá khó khăn để cố gắng khắc phục các vấn đề sau này. Tôi bị choáng ngợp. Tôi thích làm tốt công việc nhất có thể để khi tôi quay trở lại, nó không quá tệ để tái cấu trúc.
jmort253

2

JavaScript khó hiểu đã ổn 10 năm trước. Cũng không sao nếu bạn là một người nghiệp dư, hoặc nếu bạn đang xây dựng một nguyên mẫu vứt đi, hoặc nếu có một số trường hợp bắt buộc, chẳng hạn như phụ thuộc vào mã kế thừa hoặc mã điều khiển dữ liệu và nó sẽ chỉ là cách chi phí đơn giản quá nhiều để sửa chữa

Nếu bạn đang xây dựng một cái gì đó từ đầu, hãy làm theo các tiêu chuẩn, viết mã tốt, sạch, có thể bảo trì. Viết một cái gì đó mà bạn sẽ tự hào và điều đó sẽ không làm bạn phát ốm một năm kể từ bây giờ khi một số học giả nghèo yêu cầu bạn giúp đỡ vì họ không hiểu về một hackjob bạn đã làm. Viết một cái gì đó đảm bảo rằng các nhà thiết kế web của bạn có thể dễ dàng trao đổi CSS mà không cần phải tìm hiểu kỹ về HTML và JavaScript lộn xộn.

Xây dựng ứng dụng sao cho nó có chỗ để phát triển, để bất kỳ nhà phát triển nào cũng có thể vào và duy trì nó. Thời gian đầu tư bây giờ sẽ tiết kiệm thời gian trong tương lai, nếu không phải là thời gian của bạn, người khác.

Hãy chắc chắn rằng JavaScript có thể được sử dụng lại trong ngữ cảnh khác. Hãy chắc chắn rằng một thiết kế lại trang web hoàn chỉnh có thể chỉ là một thiết kế lại, và không phải là một bản dựng lại hoàn chỉnh của một cái gì đó đã tồn tại nhưng không được xây dựng khó khăn.

Hãy tưởng tượng nó sẽ ngượng ngùng đến mức nào khi phải dành cùng một khoảng thời gian cho một thiết kế lại như đã làm để xây dựng nó ban đầu.

Hãy tin tôi từ kinh nghiệm, JavaScript không phô trương sẽ ngăn bạn mắc một số sai lầm tốn kém.


2

Được rồi, chỉ cần gọi tôi là người giữ mật mã trên tất cả các hoại tử tôi làm nhưng tôi chưa bao giờ cảm thấy giá trị thực sự của điều này đã được hiểu đúng. Trong lịch sử, người ta đã khẳng định rằng "JavaScript không phô trương" hoặc, giữ cho JS của bạn ra khỏi HTML thông qua các thuộc tính của trình xử lý sự kiện HTML nội tuyến và các thẻ script không liên kết đến một tệp nhiều nhất có thể là một yếu tố chính rất lớn của:

  • Mối quan tâm tiếp cận
  • SEO
  • Và tăng cường tiến bộ

DỐI TRÁ! (tốt, bây giờ họ sẽ)

Sự thật của vấn đề là, bạn có thể thực hiện JavaScript gây khó chịu về mặt kỹ thuật và vẫn rút được ba mục trên. Trừ khi bạn đang xây dựng nội dung HTML một cách linh hoạt, đó là một SEO lớn không có trong ngày.

Nhưng hãy dừng lại và suy nghĩ ... Về BẠN!

Thực sự, lợi ích lớn, chiến thắng lớn và được đánh giá cao nhất trong việc duy trì sự tách biệt luôn là lợi ích trực tiếp mà nhà phát triển nhận được từ nó. Bạn có thể có nhiều trình xử lý sự kiện như bạn muốn trên cùng một phần tử html cho cùng một sự kiện là thuận tiện. Điều đó có nghĩa là nếu một thẻ class="some_class"luôn có một hành vi nhất định nhưng cũng có một số hành vi thưởng khi nó ở trong id="bonus_behavior"div, chúng ta không phải bắt đầu lộn xộn với logic bên trong trình xử lý sự kiện được phép của mình để phân nhánh cho điều đó. Chúng tôi chỉ có thể thêm hoặc không thêm trình xử lý tùy thuộc vào ngữ cảnh.

Dễ đọc quá

Một lợi ích khác là mức độ dễ đọc. Đây là một mối quan tâm nghiêm trọng hơn khi các công cụ trình duyệt bao gồm thông báo lỗi độc quyền của IE cho bạn biết rằng có gì đó không ổn [object]nhưng IMO, nó vẫn là một vấn đề lớn. CSS ở đây, JS ở đó và HTML là nơi cả họ và máy chủ gặp nhau. Với tất cả những điều đó kết hợp ở một nơi, thật hợp lý khi dựa vào các móc nối (ID, lớp và phân cấp) để tạo ra một lớp trừu tượng mà mọi thứ sử dụng để kết nối với HTML.

IMO, bạn càng có thể tách HTML, CSS và JS của mình ra một cách dễ dàng hơn, không chỉ đọc mà còn sửa đổi và hiểu những gì đang diễn ra. Tôi thấy một div trống với "Dynamic_combo_box" là một lớp và tôi có một ý tưởng hay là một cái gì đó đang thực hiện một lựa chọn ưa thích tải dữ liệu một cách linh hoạt. Tôi có một hướng dẫn về cách tìm thấy điều đó trong JS và CSS và nếu tôi gặp phải lớp học trong những mối quan tâm đó, tôi sẽ có ý tưởng hay về cách tìm và tìm thấy nó trong HTML.

Quá dễ dàng để làm cho thậm chí Sloppier

Và tất nhiên mức độ dễ đọc có xu hướng đi đôi với khả năng bảo trì. Khi bạn thực hiện mọi thứ trực tiếp bằng cách bỏ tất cả vào các thẻ script nơi HTML có liên quan xảy ra, thông thường, mọi người sẽ dễ dàng hơn khi cắt và dán tập lệnh đó vào HTML của một trang khác mà họ đang làm việc khi họ muốn có chức năng tương tự, điều đó có nghĩa là bây giờ bạn có một thứ rất có thể cuối cùng sẽ trở thành hai thứ giống nhau đến khó chịu nhưng không giống nhau 100% mà hành vi của họ có thể trở nên rắc rối theo thời gian bằng cách thách thức các kỳ vọng và yêu cầu thêm phân nhánh vô nghĩa để xử lý các trường hợp ngoại lệ. cái khác thì không.

Vì vậy, hành vi gian lận đối với các móc HTML đó khuyến khích sử dụng lại mã một cách thông minh. Nếu bạn cần phân nhánh hành vi cho một triển khai thay thế, bạn chỉ cần đi đến cùng chức năng và xử lý nó ở đó với phân cấp HTML hoặc có thể là dữ liệu kích hoạt một số hành vi thay thế. Đây là một điểm dừng dành cho bất kỳ ai muốn hiểu làm thế nào các yếu tố UI của một loại nhất định hoạt động và các loại cắt và dán đáng ghét lười biếng sẽ làm điều đúng đắn / dễ bảo trì hơn chỉ vì đó là điều dễ nhất làm ngay bây giờ và đó là cách tốt nhất để làm cho khả năng bảo trì xảy ra. Làm cho nó trở thành điều "duh" dễ dàng nhất ngay cả đối với những người không quan tâm đến việc do hoảng loạn hay thờ ơ.

Nhưng còn năm 2014 thì sao?

Nó có thể là một điểm hợp pháp rằng trong các ứng dụng một trang hiện đại, một số thứ dính vào đó có lẽ không nên bị mắc kẹt như giáo điều như chúng đã từng nhưng tin tôi khi tôi nói tôi không nghĩ tôi là người duy nhất đã được bán trên đó bởi vì nó cuối cùng làm cho công việc dễ dàng hơn. Tôi lười biếng theo cách (tôi hy vọng) chủ yếu là tốt. Tôi thích nó khi tôi chỉ phải thay đổi mọi thứ ở một nơi để thay đổi tất cả trên một ứng dụng, khi tôi chỉ phải tìm ở một nơi để tìm ra lỗi là gì và khi tôi có thể dễ dàng hiểu được cái quái gì là đang diễn ra và làm thế nào để sử dụng lại mã đó tốt nhất để làm một cái gì đó rất giống nhau.

Nó tốt như tách ra một DB hoặc lớp dữ liệu là tốt. Cuối cùng, đó là một lý do tại sao tôi không làm như vậy, tiết kiệm thời gian như dành tất cả năm phút để giặt đồ vào đêm hôm trước thay vì dành 10 phút cho việc đóng băng các võ sĩ của bạn và tiến hành kiểm tra mùi hoang tưởng vào sáng hôm sau.

Đối với tôi, chính những động lực ích kỷ đó luôn là điểm chính khiến tôi không chỉ quan tâm đến JS mà còn tách biệt các mối quan tâm về phong cách / hành vi / nội dung ngay cả khi WHAT-freaking-WG làm gì giải quyết những lo ngại đó theo những cách dễ hiểu và tuyệt vời / tiện dụng.

Bây giờ mọi người đang làm SPA và gần như ngớ ngẩn khi cố gắng thuyết phục doanh nghiệp rằng chúng ta nên quan tâm đến những người chạy mà không có JS (khả năng truy cập bây giờ, được cho là, được xử lý với nội dung do JS tạo ra), có vẻ như thế hệ tiếp theo của các nhà phát triển JS ít quan tâm về điều này nhưng IMO, vẫn có một chiến thắng ở đó và chủ yếu là cho bạn, nhà phát triển viết và duy trì công cụ này. Và thực sự, chiến thắng đó đáng lẽ phải luôn là điểm thiếu nhất nhưng chưa bao giờ vì một lý do nào đó vì cuối cùng nó mang lại lợi ích cho bạn và cả sản phẩm một cách tình cờ thông qua việc dễ dàng điều chỉnh / sửa đổi / gỡ lỗi.

Có bao giờ được không?

Vâng, tôi đoán vậy. Trong một ứng dụng ném đi dùng một lần cho một cuộc thi hoặc một cái gì đó có thể. Nhưng tôi vẫn sẽ làm điều đó chỉ vì tôi theo thói quen của nó và nó không thực sự khó hơn để làm.


1

Nếu bạn biết Javascript môi trường hoạt động mục tiêu của bạn và các khung như jQuery có thể là một ơn trời thực sự. Chẳng hạn, trong môi trường Doanh nghiệp nơi SOE có Javascript và IE8, an toàn hơn để viết các ứng dụng trình duyệt phía máy khách chuyên sâu.


1

Làm cho sự xuống cấp duyên dáng trở nên dễ dàng hơn chỉ là một trong nhiều yếu tố khiến JavaScript không phô trương trở thành một lựa chọn hấp dẫn và theo tôi, nó không phải là yếu tố quan trọng nhất.

Từ kinh nghiệm cá nhân, tôi sẽ nói rằng nếu bạn đang nói về một dự án lớn hơn, một dự án có thể sẽ phát triển rất nhiều theo thời gian, thì việc sử dụng phong cách không phô trương sẽ giúp ứng dụng dễ dàng hơn trong việc duy trì, gỡ lỗi và tái cấu trúc. Đây là lý do lớn nhất khiến chúng tôi luôn sử dụng phong cách không phô trương, ngay cả trên các trang web yêu cầu bật JavaScript cho tất cả khách truy cập.


+1 cho Shang cho viên ngọc này "Làm cho sự xuống cấp duyên dáng trở nên dễ dàng hơn chỉ là một trong nhiều yếu tố khiến JavaScript không phô trương trở thành một lựa chọn hấp dẫn và theo tôi, nó không phải là yếu tố quan trọng nhất." Việc triển khai Javascript có thể là con dao hai lưỡi, đôi khi tôi đã tìm thấy
MattyD

1

Nói chung, nếu bạn đang phát triển một "trang web" truyền thống có sẵn ẩn danh, được lập chỉ mục bởi các công cụ tìm kiếm và nơi doanh thu được tạo bởi quảng cáo, thì bạn nên cung cấp sự xuống cấp duyên dáng. Ý tưởng là loại trang web này tồn tại và chết bởi khả năng truy cập nên hạn chế khả năng truy cập có nghĩa là mất hàng tấn lượt xem trang và do đó doanh thu quảng cáo.

Quyền truy cập bị hạn chế, thường là "trang web" (ứng dụng web) không thể lập chỉ mục và không dựa trên doanh thu có thể linh hoạt hơn rất nhiều. Nó đi đến quyết định giữa chiều rộng hỗ trợ, độ sâu của các tính năng và chi phí phát triển. Hãy nghĩ về nó giống như phát triển một ứng dụng truyền thống: bạn hỗ trợ nền tảng nào và các thông số kỹ thuật tối thiểu là gì? Nếu bạn chỉ nhắm mục tiêu một nền tảng và thông số kỹ thuật hạn chế, bạn có thể tập trung vào việc cung cấp một sản phẩm ưu việt với chi phí hỗ trợ và phát triển ít hơn, với chi phí mất thị phần tiềm năng.

Ví dụ: Google Search là một trang web. Google Docs là một ứng dụng web. Google Search không rườm rà và có thể hoạt động giống hệt nhau mà không cần JavaScript, CSS và / hoặc hình ảnh, v.v ... - nó hoạt động trong các trình duyệt chế độ văn bản cũng giống như trong các trình duyệt GUI mới nhất. Google Docs đơn giản là không hoạt động với JavaScript bị vô hiệu hóa và nó thậm chí không làm giảm một cách duyên dáng - thậm chí không phải là một cảnh báo để kích hoạt JavaScript.


1

Tôi thích có hầu hết các bố cục và điều hướng được xử lý trong CSS. Có, Lynx có thể không hỗ trợ nó, nhưng tất cả các trình duyệt đầy đủ tính năng mà tôi biết không thể tắt nó. Sau đó, JavaScript có thể được sử dụng cho những thứ hào nhoáng hơn nhưng không bắt buộc. Tôi cũng thích Ruby on Rails cho mục đích này. Nó có thể thực hiện rất nhiều những gì JavaScript sẽ được yêu cầu để làm phía máy chủ miễn là bạn không cần cập nhật trang động.

Nhắm mục tiêu nhiều hơn vào câu trả lời của câu hỏi: Tôi không THÍCH JavaScript yêu cầu, nhưng có một trường hợp kinh doanh được yêu cầu như ChrisF lưu ý.


0

Javascript là tiêu chuẩn khiếm khuyết khi nói đến bất kỳ loại nội dung động nào được phân phối phía khách hàng, nếu họ không có JS thì có lẽ họ sẽ không có ánh sáng bạc.

Sau đó, bạn phải suy nghĩ về thị trường / đối tượng của bạn là lập trình viên.stackexchcange hoặc bbc.co.uk/news? khán giả rất khác nhau.


0

Vì bạn có thể tìm kiếm trên web và thấy "javascript khó chịu" trên nhiều trang web, câu hỏi cơ bản của bạn đã được trả lời, vâng, nó ổn, và nhiều trang web phổ biến làm điều đó, ngay cả Google.

Tuy nhiên, điều quan trọng hơn là sự xuống cấp của chức năng, mặc dù bạn khăng khăng rằng người dùng của bạn nên kích hoạt Javascript, bạn phải cung cấp một mức độ kinh nghiệm hợp lý cho người dùng không phải là js, hoặc họ sẽ không bao giờ sẵn lòng quay lại.


Họ thậm chí sẽ không bao giờ được phép qua trang đầu tiên ở vị trí đầu tiên.
Petah
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.