it-swarm.dev

JavaScript devre dışı bırakılmak için geliştirmem gerekir mi?

JavaScript devre dışı bırakılmak için geliştirmem gerekir mi?

Zamanımın çoğunluk için geliştirmeye daha iyi harcandığını hissediyorum.

103
Jiew Meng

Aşamalı Geliştirme olarak bilinen bir web tasarım felsefesi var. Fikir, kullanılabilir ve uygulanabilir bir temel site oluşturmak ve daha sonra "geliştirmek" jQuery ve tarayıcıya özgü şeyler gibi bu geliştirmeler üzerinde katman. Bu şekilde herkes için çalışan ve çoğunluk için güzel görünen bir site elde edersiniz.

Bu sizi ikna etmezse, bir sitenin javascript olmadan çalışmasının diğer nedenlerini göz önünde bulundurun:

  • Daha SEO dostu. Siteniz içerik ve bağlantılar için JS'ye güveniyorsa, arama motorları bunun büyük parçalarını görmezden gelecektir.

  • Widget satan bir e-ticaret sitesi olduğunuzu düşünün. Şimdi, müşterileriniz yalnızca% 5'i javascript'i devre dışı bıraksa bile, bu% 5'lik potansiyel bir satış kaybıdır. Müşteri kaybetmeye değer mi?

  • Engellilere karşı ayrımcılık yapmayın. Javascript'e güvenmek, sitenizin erişilebilir olmadığı anlamına gelir ve bazı durumlarda (devlet/kamu sektörü siteleri gibi), insanlara karşı ayrımcılık yaparak yasayı ihlal ediyor olabilirsiniz.

70
Dan Diplo

Birincisi, her şeyin Javascript olmadan çalışması gerektiğinde ısrar eden insanlara katılmıyorum. Birçok durumda en düşük ortak paydaya kod yazmak güzel (örneğin, bankamın sitesi Flash veya böyle bir saçmalık gerektiriyorsa gerçekten çok sinirlenirdim.) Ama gerçekçi olarak hemen hemen herkes bu günlerde Javascript'i etkinleştirdi ve düzgün kullanılırsa ortaya çıkan siteler oldukça muhteşem ve kullanışlı olabilir! (Yani, Javascript kapalı olduğunda Google Haritalar'ın ne kadar güzel olduğunu görelim ...)

Bununla birlikte, bu en azından Javascript mevcut değilse sayfanızın zarif bir şekilde başarısız olmasını sağlamaktan sizi kurtarmamalıdır. ASLA kullanıcılarınızı neyin yanlış gittiğine dair hiçbir belirti olmadan yarı dolu, bozuk bir sayfaya bakacak şekilde bırakmayın. Sadece kendinize sorun: "Bu sayfa Javascript gerektirir" mesajını kodlamak için 2 dakika harcamayı veya noscript etkin olduğu için sayfamın bozulduğunu söyleyen kullanıcılardan günlük 10 e-posta almayı mı tercih ederim?

47
Toji

Evet yapmalısın.

Bunu ekstra çaba gerektiren bir şey olarak algılarsanız, bunu başka şekilde yapıyor olabilirsiniz.

Sayfalarınızı önce JavaScript olmadan çalışacak şekilde geliştirin, ardından JavaScript tabanlı geliştirmeler, Ajax efektleri vb. Ekleyin. JS desteklenirse/etkinleştirilirse çalışırlar, aksi takdirde sayfalarınız incelikle indirilir olur.

Ve lütfen şu sayfaları geliştirmeyin:

  1. Tüm içerik JavaScript tarafından veritabanından alınır

  2. İşaretleme tamamen ayrılır, çünkü öğeler CSS tarafından değil, yapıştırılarak JavaScript ile doğru yerlere yerleştirilir

  3. Navigasyondaki ve gövdedeki bağlantılar JavaScript olmadan çalışmaz (bir nedenden dolayı JavaScript'e dayanan ASP.NET gibi bir çerçeve olmadığı sürece)

Sadece web'in ruhuna ve sağduyuya karşı.

Not; NoScript kullanıcısı tarafından konuşulur.

39
user8685

Bir geliştirici olarak artık Javascript'i kapatan kullanıcıların yaklaşık% 1'ini endişelendirmiyorum. Çok zaman alıcıdır ve gelişme süresi bu saçmalıkta boşa harcamak için çok pahalıdır. AJAX doğrudan $$$ tasarruf dönüşen inanılmaz miktarda bant genişliği kaydeder, bu da karı daha da yükseltir. Sitenin her 100 kullanıcısı için bir veya iki potansiyel kullanıcısını kaybedersem, bu bir veya iki kaybedilir kullanıcılar geliştirme aşamasında getirebilecekleri potansiyel gelirden çok daha pahalıya mal olacak.

Javascript'i kapatmayı ve Facebook'a giriş yapmayı deneyin, bundan sonra çok bozuk bir web sitesi haline gelir. Facebook için yeterince iyi olursa, benim için yeterince iyi.

33
Robert

Şahsen tarama yaparken NoScripts Firefox eklentisini kullanıyorum ve başkalarını da kullanmaya teşvik ediyorum. Bakımını yaptığım tüm aile bilgisayarlarında NoScripts yüklediğim yazılımın zorunlu parçalarından biridir. Popüler sosyal ve video siteleriyle birlikte temel e-posta ve bankacılık web sitelerinin bir beyaz listesi ile kurdum ve onlara geçici izinlerin nasıl çalıştığını açıkladım. Bu eklentinin popülaritesinden yola çıkarak onu kullanan insanların oldukça iyi bir kısmı olduğunu düşünüyorum.

En azından navigasyon işlevinin komut dosyaları olmadan çalışmasını bekliyorum. Komut dosyası gerektiren video gibi belirli bir şeyiniz varsa iyi, ancak "bu videoyu görüntülemek için komut dosyaları gerekli" yazan Güzel bir yer tutucu görüntülerseniz.

Gezinmenizi komut dosyalarına dayandırmak büyük bir hatadır. Birçok durumda bu beni iğrenç bir şekilde siteden sıçrama yapacak. Daha da büyük bir hata, komut dosyası devre dışı bırakıldığında sitenizin veya navigasyonunuzun bir kısmının tamamen kaybolmasıdır. Bir şeyin eksik olduğunu vurgulamadığınız sürece, fark etmeyeceğim iyi bir şans var, bu yüzden sitenizi orada olmadığını düşünerek bırakacaksınız. Ayrıca, sadece "bu site komut dosyaları gerektirir" diyen tam ekran bir mesaj sizi çok ileriye götürmez, komut dosyalarına izin vermek için size yeterince güvenmeden önce bir miktar içerik görmem gerekiyor.

Son olarak, sitenize göz atan sadece masaüstü bilgisayarlar değil, mobil tarayıcıların da giderek daha popüler olduğunu unutmayın. Mobil JavaScript desteği daha iyi hale gelmesine rağmen, mükemmel bir yer yok, bu yüzden tüm farklı mobil tarayıcıları ağır bir şekilde test etmediğiniz sürece, sayfanızın mobil sürümünü hemen hemen komut dosyası olmadan aramanızı öneririm.

11
Simon P Stevens

Siteye ve onu kimin kullanacağına bağlıdır.

Site herkese açık mı, yoksa yalnızca belirli müşteriler tarafından kullanılabilecek bir intranet mi yoksa bir site mi? Muhtemelen herkese açık olarak JavaScript içermeyen kullanıcılarla karşılaşacaksınız. Yalnızca istemciler tarafından kullanılacaksa, yalnızca JavaScript'i etkinleştirdiğinizi söyleyebilir misiniz?

SEO bir düşünce veya bir giriş ekranı veya SEO arkasındaki tüm site aksi bir faktör değil mi? JavaScript yoksa arama motorları için optimizasyon yapmak çok daha kolaydır.

Site hiç mobil tarayıcılarda kullanılacak mı? Mobil tarayıcılarda genellikle JavaScript desteği yoktur veya zayıftır.

Ayrıca JavaScript'in ekran okuyucularının sitenizi işlemesini zorlaştırabileceğini ve potansiyel olarak olumsuz erişilebilirlikle ilgili başka hususları olduğunu da bilmelisiniz.

Metin tabanlı tarayıcıların (ör. Vaşak) kullanıcılarının JavaScript desteği çok azdır veya hiç yoktur.

Sitenize ve kitlenize bakmalı ve JavaScript'i devre dışı bırakılmış kullanıcıları desteklemeniz gerekip gerekmediğine karar vermelisiniz. Ayrıca JavaScript kullanmanın mümkün olup olmadığını da görmelisiniz. Gelişmiş bir Web Uygulaması yapıyorsanız ve web kamerası ve mikrofon desteği gibi şeylere ihtiyacınız varsa, JavaScript kullanmanız mümkün olmayabilir.

JavaScript içermeyen kullanıcıları desteklemeniz gerektiğine karar verirseniz, yine de JavaScript kullanabilirsiniz. Sadece web sitesini onsuz hala işlevsel hale getirmelisiniz. Buna aşamalı geliştirme denir, JavaScript desteği yoksa zarafetle düşürülmelidir.

JavaScript kullanmaya karar verirseniz kullanıcılarınızı bilgilendirmelisiniz (<noscript> tag).

9
Adam

"A List Apart" dan bir makale önerebilir miyim ?:

JavaScript ile Aşamalı Geliştirme

... JavaScript'te aşamalı geliştirmeyi uygulamak için gerekli olan zihniyet ve bunu yapmak için birkaç teknik inceledik. Ayrıca göze batmayan komut dosyası oluşturma kavramına da değindik ve CSS ve JavaScript arasındaki ilişkinin nasıl yönetileceği hakkında biraz bilgi edindik.

Genel yaklaşımı bu makaleyle JQuery (veya Prototip veya seçtiğiniz JavaScript çerçeveniz ne olursa olsun) gibi kullanışlı araçlarla birleştirdiğinizde, JavaScript davranışını bundan sonra uygulamak gerçekten önemsizdir.

Hala JavaScript veya en azından çok sınırlı JavaScript desteği olmayan birkaç tarayıcı türü vardır. Hem WCAG hem de bölüm 508 uyumluluğu (ABD dışındaki kişiler için erişilebilirlik) için 1. kuralın, görüşün işlev komut dosyası diline bağlı olmadığı anlamına gelmemektedir. Her değişiklik yaptığımda sayfa yeniden yüklenir, ancak yine de değişiklikler yapmama izin verir. Temel sitenin üstündeki AJAX katmanı, sayfayı yeniden yüklemeden aynı şeyi yapmamı mümkün kılar.

Hiçbir JavaScript kullanıcısını desteklemek için görebildiğim en önemli nedenler:

  • Engelli kişiler (ekran okuyucular, alternatif giriş aygıtları, vb.)
  • Güvenlik bilincine sahip insanları destekleme: JavaScript ile müthiş şeyler yapan kötü insanlar olduğunu kabul edelim, bu yüzden en kolay çözüm JavaScript'ten kurtulmaktır
  • Eklentisiz reklamları devre dışı bırakmanın en kolay yolu
  • Mobil ve yerleşik cihazlar
  • Başsız sunucularda araç indirmek için kullanılan komut satırı tarayıcıları
  • Arama motoru örümcekleri yalnızca gerçek bağlantıları takip eder - JavaScript onları karıştırır

Lütfen, sitenizde çerezlerin ve JavaScript'in function olması gerekiyorsa, aşağıdaki sorunlardan kaçınmak için gereken özeni gösterin:

  • Siteler arası komut dosyası saldırıları
  • 3. taraf kullanıcı takibi
  • DOM manipülasyonu ile Hacking/Defacement
  • Kimlik avı (bir komut dosyası DOM'nize erişebiliyorsa, sayfadaki tüm bilgileri yüklendiği sunucuya gönderebilir)

(Ve bu sadece kısa liste)

Çözüm o kadar zor olmadığında neden yapmıyorsunuz?

Ayrıca, JavaScript fiesta'nızdayken akıllı klavye gezinmesini desteklemeyi unutmayın.

8
Berin Loritsch

Kesinlikle

JavaScript olmadan düzgün çalışmayan bir site kullanıcıyı açıkça bilgilendirmelidir. JavaScript olmadan doğru şekilde çalışmak için mümkün olduğunca yapılmalıdır. Bunun mümkün olmayacağı bazı durumlar vardır, AJAX katmanları üzerine inşa edilmiş son derece dinamik siteler ve uzak getirmeler bunlardan biridir.Bu boş bir sayfa göstermenin uygun olmadığı anlamına gelmez. JavaScript devre dışı bırakıldıysa.

Zarif bozulma son derece önemlidir ve sadece JavaScript için geçerli değildir, kodladığınız her şey için de geçerlidir. Geçerli HTML işaretlemesi, geçerli CSS, sunucu tarafı doğrulaması her şey.

8
Josh K

Böyle bir sitede, birçok geliştiricinin Javascript'i nasıl devre dışı bıraktıklarını söyleyeceğini göreceksiniz, böylece aşamalı geliştirmeyi desteklemelisiniz. Javascript'i devre dışı bırakılmış kişilerin% 5'inin gerçekte,% 90'ı geliştiriciler ve diğer teknoloji meraklılarıdır, genel halk değildir. Çoğu büyük site aşamalı geliştirmeyi desteklemez. Facebook'u Javascript olmadan kullanmaya çalıştınız mı? Temelde git dediler.

4
Craig

Kullanıcıların <% 5'i javascript'i devre dışı bıraktı

BrowserStatistics verilerine göre, 2008'de kullanıcıların yalnızca% 5'inde JavaScript kapalıdır. Eğilim giderek azalıyor, bu nedenle 2011'e yakın zamanlarda bu sayının çok daha küçük olduğunu varsaymak çok güvenli.

Derecede Sürüm Düşürme

Siteniz hiçbir zaman kırılmamalıdır - kullanıcıların açık veya kapalı olması fark etmeksizin. Sitenizin javascript açık olması gerektiği gibi bir mesaj görüntülemek kadar basit olsa bile, web sitenizin bu seçili birkaç kişi için kabul edilebilir, kırık olmayan bir şekilde oluşturduğundan ve davrandığından emin olmalısınız.

JS dışı kullanıcılar için yeniden mi çalışıyorsunuz? Normalde: Hayır.

Sıradan geliştiricinin başka bir dilde javascript olmayan bir sürüm oluşturmasına gerek yoktur. Ancak, müşterilerinizin anti-javascript gereksinimlerine sahip olduğu biliniyorsa, açıkçası buna hitap etmek zorundasınız. (GMail'in JS olmayan bir sürümü bile vardır)

3
rlb.usa

Düşüncelerim:

Javascript kullanmak, sadece sizin için değil, müşterileriniz için de yüzey alanını her zaman arttırır - tanıdığım hemen hemen herkes NoScript ile göz atıyor ve bu teknik olmayan kişiler içeriyor.

Javascript kötü kullanan bir online alışveriş sitesi görürsem onlardan satın almayacağım. Ben her zaman ilk önce javascript devre dışı ile göz atın ve bir site incelikle bozulursa ben ilgilenebilir. Sadece kırılırsa, genellikle programcıların güvenli bir alışveriş platformu sunma yeteneğine sahip olmadığını varsayacağım.

Her şeyi yavaşlatma eğilimindedir - büyük bir şehre yakın olmasına rağmen, geniş bantım bazı pazarlama fikirlerinin yüklenmesini beklemek zorunda kalmadan yeterince yavaştır. Bir sitenin temel içeriği yüklemesi 5 saniyeden uzun sürerse, gerçek bir ihtiyacım olmadıkça rahatsız olmaz.

1
Rory Alsop

Sadece kritik görev işlevselliğinde

Genellikle "incelikle bozunmak" için iyi bir fikir. Ancak, JavaScript'in kullanılamayabileceği durumlara hitap etmek için yalnızca web uygulamanızın kritik görev bölümlerine konsantre olurdum.

Sadece "çan ve ıslık" etkileri, o zaman hayır rahatsız etmeyin. Kasten JavaScript ile sörf yapan insanlar sadece düz bir deneyim yapmak zorunda kalacaklar (hey, Js kullanmamaları için bu seçim)

1
Darknight

Buradaki cevapların çoğu, JavaScript'i temel olmayan veya hacky yollarla kullanan standart web sitelerinin eleştirilerini vurgulamaktadır. Peki ya web uygulamaları? JavaScript olmadan uzaktan bile etkin bir şekilde gerçekleştirilemeyen tonlarca kritik işlev vardır. Bir metin alanı altında temel bir Word sayacı kadar basit bir şey veya başka bir sorunun cevabına dayalı ek bir form sorusunu etkinleştirme/devre dışı bırakma. Bu durumda, çoğunluk için inşa etmek ve azınlık için incelikle yıkılmak mantıklı değil mi? Özellikle kullanıcı tabanınızın teknik olmadığını ve JS'nin devre dışı bırakılma olasılığını biliyorsanız?

1
Jordan

Düşünülmesi gereken şeyler:

AFAIK, arama motoru örümcekleri Javascript'i sevmiyor. Sadece SEO için Javascript olmadan temel içerik ve navigasyona sahip olmalısınız.

Bazı web sitelerinin, yasal nedenlerle veya şirket politikası nedeniyle engellilerin erişim kuralları olabilir. Bu genellikle en iyi Javascript'in aksine basit HTML ile gerçekleştirilir.

Çoğu insan bugünlerde Javascript ile sörf yaparken, bu gelecek için bir garanti değildir. Web giderek daha düşmanca hale geliyor ve NoScript gibi araçlar daha popüler hale gelebilir. Alternatif olarak, daha fazla kişinin daha az yetenekli tarayıcıya sahip cihazları kullanması mümkündür, ancak bazı Android telefonlar oldukça ucuz olsa da, bu daha az olası görünmektedir.

0
David Thornley

Evet.

NoScript, gömülü cihazlar, vb. Olan kişiler hakkında konuşmayacağım. Paylaşımları ölçülebilir ve daha sonra sinir bozucu örneğin gelir kaybının neden olup olmadığına karar verebilirsiniz. % 0,5 kullanıcı kendileri için bir çözüm uygulamaya değer.

Ancak İlerleme Geliştirme ilkesine uymanın başka nedenleri de vardır ve bunlar genellikle daha önemlidir.

  1. % 100 kullanıcılar komut dosyaları yüklenmeden önce javascript yürütemez. Site js olmadan çalışabiliyorsa, ilk kez gelen ziyaretçiler, önbelleği boş olan ziyaretçiler ve js kodu güncellemelerinden sonra tüm ziyaretçiler için daha hızlı yüklenebilir.

  2. Js olmadan çalışabilen siteler daha güvenilirdir. Bir web sitesini kırma Javascript hatası mimari bir kabus. Bu ve ilgili sorunlar hakkında daha fazla bilgi: http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

  3. Progresif Geliştirme'ye sadık kalmak, sadece SEO dostu javascript sitesi uygulamaktan daha kolaydır.

  4. Çalışması için javascript gerektirmeyen site için otomatik testler yazmak daha kolaydır.

Progressive Enhancement ilkesini takip etmek aslında oldukça kolaydır, o halde neden takip etmiyorsunuz?

0
Mike Korobov

Tek bir sorunun cevabına bağlıdır:

"Javascript'i devre dışı bırakılmış kullanıcıları desteklemenin maliyeti, bu kullanıcıları desteklemeyerek kaybedilen paradan daha yüksek veya daha düşük mü?"

Diyelim ki web sitenizin yeniden oluşturulması gerekmeden önce 3 yıllık bir ömrü var, 'zengin müşteriler' için 30.000 £ maliyeti ve javascript kullanıcılarını desteklemek için 10.000 £ daha eklediğinizi (bunun% 5 olduğunu varsayalım) nın-nin)

Kullanıcıların eksik% 5'i 10.000 £ 'dan fazla harcamış olsaydı, bunu yapın. Eğer yapmazlarsa, yasal olarak zorunlu olmadıkça yapmayın.

Bu bir teknik/karardan ziyade ticari/ekonomik bir karardır.

0
PhonicUK