Bir web sitesi oluştururken JavaScript kullanımını en aza indirmek yaygın bir uygulama mıdır? [kapalı]


32

Neredeyse 10 yıldır bir web geliştiricisi oldum ve mümkün olduğunda JavaScript kullanmamaya alışkanlık kazandım. Burada web uygulamaları oluşturmaktan söz etmiyorum, veritabanına dayalı web siteleri.

Bu iyi / saygın bir yaklaşım mıdır?


6
Standart javascript'i devre dışı bırakıyorum ve noscript, javscripts'in hangi kaynaklardan yüklendiğini söylüyor. Bir web sitesinin, javascriptleri 10'un üzerinde ikincil kaynaktan yüklemesi ve nadiren de üçüncü dereceden javascripti yüklemesi nadir değildir. Ayrıca, bir sayfanın toplam 20'den fazla dış kaynaktan javascript yüklemesi nadir değildir. Yani şunu söyleyebilirim: javascript kullanımının en aza indirilmesi pencerenin dışında.
Pieter B

9
Ne kadar çok javascript'e güvenirseniz, sitenizin Navigasyon dostu ve SEO dostu olmasının o kadar az olacağını gözlemledim. "Javascript linkleri" vb. Nedeniyle kaç tane web sitesi bıraktığımı sayamıyorum.
BiAiB

1
İnternette çok fazla javascript olduğunu buldum. Sorunlar: 1) basit indeksleyiciler js'yi anlamıyor, 2) büyük miktarda js CPU'yu yakıyor 3) bazı platformlarda hala js yok (telefonlar, linkler tarayıcı). Yani, gereksiz olduğunda js kaçınmak iyi bir uygulamadır.
permeakra

Neden bu Haftanın Sorusu? Bunu açık ve yapıcı değil olarak oylardım. Genel olarak, "X kullanmalı mıyım?" Bu sitede sorular takdir edilmez. Belki biri beni aydınlatabilir.
Mark E. Haase, 11:12

Microsoft web yığını (şu ana kadar MVC ile birlikte), ASP.NET ve SharePoint'teki HER TEK DÜĞME TIKLAYI için JS'ye dayandı. Yani hayır, kullanımı en aza indirgemek yaygın değildir.
Graham

Yanıtlar:


51

Bu azaltmanın en programcı içgüdü her kodun türlü. Daha az kod, daha az karmaşıklık ve daha az muhtemel hatanın söz konusu koddaki noktaları. Bu kural, diğer dillerin yanı sıra Javascript için de geçerlidir. Sadece geleneği koruyorsun.

Javascript'i HTML sayfalarında gerektiği gibi / istediğiniz şekilde kullanın ... ancak gerçekte gerekmediğinde kullanmak için hiçbir neden yoktur.


9
JavaScript'ten kaçınmak, daha fazla koddan kaçınmak için genel içgüdülerden farklı bir konudur. JS ile sadece geliştirme karmaşıklığını azaltmakla ilgili değil; kullanıcılarınızla gerçek uyumluluk sorunları var.
12'de

34

10 yıl önce, iyi bir fikir olabilirdi. Günümüzde internetin çoğu kısmı (- en azından bazı popüler kısımlar -) tarayıcıda Javascript'i devre dışı bırakırken neredeyse kullanılamaz hale geldi veya yalnızca çok kısıtlı bir işlevsellik sağladı. Yani IMHO bugün kullanıcılarınızın Javascript'in etkin olmasını bekleyebilirsiniz.

Tarayıcı uyumsuzluklarını aşmak için JQuery gibi birçok çerçeve var. IMHO bugün Web siteniz için Javascript kullanmayarak kendinizi kısıtlamanızın gerçek bir nedeni yok - bunun tek nedeni, bunun için herhangi bir kullanımınızın olmaması olabilir.

EDIT: farklı bir soru şudur: Ziyaretçilerinizin JS'si etkin olmadığında web sitenizin asgari işlevselliğini sağlamanız gerekiyorsa - bu, yorum yapanların bazılarının belirttiği nedenlerden ötürü çoğunlukla iyi bir fikirdir.

EDIT2: Her web sitesi için kesinlikle, kullanıcı dostu, arama motoru dostu ve geliştirme çabası arasında bir denge bulunması gerekiyor. Bugün IMHO Javascript bu dengeyi geliştirmeye yardımcı olabilir - eğer akıllıca kullanılırsa. Bu dengeyi korumak için artık Javascript kullanımını en aza indirmenin bir gereği olmadığını düşünüyorum. Dikkatli kullanın ve şeytanlaştırmayın.


17
İşte birkaç tane: SEO, web toplayıcıları, ekran okuyucular, NoScript, curl, mobil tarayıcılar. Varsayılan olarak komut dosyalarını devre dışı bırakıyorum ve internetin çoğu hala iyi çalışıyor.
tdammers

7
Bir site javascript olmadan kullanılamıyorsa, Google tarafından etkin bir şekilde taranamaz ve RESTful bağlamında kullanılamaz veya kullanılamayabilir. Facebook bile javascript olmadan en az düzeyde kullanılabilir durumda
GordonM

9
Burada söylenenlerin çoğuna katılıyorum, ancak bir sitenin "en azından JavaScript olmadan en az kullanılabilir" olması gerektiği fikrine şiddetle karşı çıkıyorum. Bu yanlış: JavaScript olmadan azami derecede kullanışlı olmalı .
Jörg W Mittag

4
@ JörgWMittag Bir web teknolojisini devre dışı bırakacaksanız, web sitesinin tüm avantajlarından yararlanmayı beklememelisiniz. Senaryolar farklı, ancak bir web uygulaması oluşturuyorsam, 21. yüzyıla taşınmayı reddeden kullanıcılarımın azınlığı için zamanımı tam olarak harcamam. Projelerimin çoğunda IE 6'yı desteklemediğim gibi.
Tom Marthenal

2
Tüm kullanım durumlarını desteklemek sadece profesyoneldir. Eğer kaçırdıysanız, sorun değil, herkes arada sırada yanıyor ama onları ihmal etmek farklı bir problem. JS OLMADAN% 100 web siteleri geliştirmek üzereyim ve işleri yürüttükten sonra, işleri kolaylaştırmak ve UX'i daha iyi hale getirmek için JS'yi ekleyin.
Spidey

13

JavaScript olmadan kullanılabilecek bir siteye sahip olmak, mümkün olan en geniş kitleye ulaşabileceği anlamına gelir. Tarayıcıların çoğunluğunun JavaScript'i desteklediği ve kullanıcıların çoğunluğunun varsayılan olarak açık bıraktığı doğru olsa da, kesin olarak buna güvenemezsiniz. Sitenize erişen her şey sonuçta bir tarayıcı değildir; Sitenizin Google gibi arama motorları tarafından düzgün bir şekilde dizine alınmasını istiyorsanız, GoogleBot’un sitenizde JavaScript kullanmadan dolaşabilmesi gerekir.

Ayrıca JavaScript kullanılamayan veya beklendiği gibi çalışmayan uzman web tarama yazılımları da bulunmaktadır. Örneğin, görme engelli kişiler tarafından kullanılan ekran okuma veya Braille yazılımı. Ayrıca, hafızanın kısıtlı olduğu ve çok miktarda javascript'e sahip olmanın, tarama deneyimini akıllı telefon tarayıcıları gibi nahoş veya hatta pratik hale getirebileceği ortamlar da vardır.

Javascript olmadan çalışmak için bir site oluşturduğunuz, ardından kullanıcı deneyimini geliştirmek için üstüne bir javascript katmanı eklediğiniz "aşamalı geliştirme" kavramına bakmalısınız. Bu şekilde, en azından javascriptsiz insanlar için kullanılabilen bir siteye sahip olacaksınız.

JavaScript’le JavaScript içermeyen tarayıcılara JavaScript ile uygulamayı planladığınız her özelliği sağlamak için uğraşmanıza gerek yoktur, ancak en azından temel kullanım durumlarını JavaScript olmadan kullanabilmeniz önemlidir. Siteye göz atabilmek açık bir şekilde listenin başında yer alıyor, ancak bir e-ticaret sitesi oluşturuyorsanız, satın alma işleminin JavaScript'e bağımlı hale getirilmesi, satışlarınızda maliyet getirebileceğinden aptalca olacaktır.


4
Kesinlikle. Javascript ana yemek değil baharat olarak kullanılmalıdır.
Hlovdal

9

Diğer cevaplar “JavaScript kullanmamalı mıyım” üzerine odaklanıyor gibi görünüyor, bu yüzden noktayı kaçırdıklarını düşünüyorum. İhtiyacınız yoksa JavaScript kullanmamalısınız. Bazı insanlar her şey için JavaScript kullanıyor :

  • Vurgulu etkileri (CSS olmalı)
  • AJAX ( hrefmakul olduğunda olmalıdır )
  • Konumlandırma (CSS olmalı)

Avantajlar şöyledir:

  • Site daha hızlı görüntüler
  • CSS, çoğu zaman JavaScript'ten çok daha az karmaşıktır
  • Yedekleme hrefbağlantılarına sahip olmak arama motorlarına, diğer sekmelerde bağlantı açmak isteyen kullanıcılara ve JavaScript’ten nefret eden kullanıcılara yardımcı olur

Elbette, AJAX oldukça havalıdır ve dinamik sayfalar da vardır, bu yüzden bunları başkalarına atmayın, çünkü bazı insanlar onlara ihtiyaç duymazlar.

Demek istediğim, JavaScript olmadan işlerin nasıl yapıldığını öğrenmek iyi, JavaScript'i en aza indirmek iyi ve JavaScript'in işe yaramadığı zamanlar için bir yedeğe sahip olmak, ancak JavaScript gerektirdikleri için özelliklerden kaçınmak için hiçbir neden yok.


1
Birkaç yıl önce bazı konularda tavsiyelerde bulunduğumu hatırlıyorum, (o sırada ne deniyordu?) Man Machine Arayüzleri: "Sadece yapabileceğin, yapman gerektiği anlamına gelmez" Bu aşırı gösterişli animasyona sahip bir dizi web sitesi Ses ve benzeri gibi gemide almalı.
Andrew,

8

Gereksiz işlevsellikten kaçınmak iyi bir fikirdir, dönem. JQuery gibi çerçeveler, eklemek mantıklı olan ama bazen yapmayan fırfırlar eklemeyi inanılmaz derecede kolaylaştırır. Örneğin:

Bunu gerçekten canlandırmaya ihtiyacınız var mı?

... veya ...

Bu kadar önemsiz bir seçici için DOM'un tamamını geçmek gerçekten gerekli mi? Bağlam kullanarak sınırlayabilir misiniz ve ilk başta buna ihtiyacımız var mı?

JS kullanmaktan kaçınmam , ancak daha yavaş makineler ararken, iğrenç olmamasına dikkat ederim. Aynı şey, CSS3'e benzer gölge düşürdüğümüz bazı yeni şeyler için de geçerlidir. Aşırı kullanılırsa, daha düşük güçlü bir makinedeki birini gerçekten kötü bir deneyime sokabilirler.

Bunun istisnası, kesinlikle JS devre dışı bırakılmış olarak çalışmak zorunda oldukları çeşitli cihazlar için ön uç kontrolleri yazmak olabilir (belki de bir veri merkezi yönetim ağında katı bir güvenlik politikası bulunmaz). Öyleyse, yukarıdaki gereksinimleriniz ne olursa olsun bağlamında ele alınmalıdır.


6

Oldukça yeni ve genç bir web geliştiricisi (yaklaşık 4 yıl) olmanın, javascript her yerde olduğu için bu konuda çok araştırma yapmak zorunda kaldığımı düşünüyorum.

Projelerimde yapmaya çalıştığım, sitenin javascript kullanmadan çalıştığından emin olmak, sonra mantıklı olduğu yerde javascript eklemek (müşteri tarafında doğrulama, kullanıcı arayüzü geliştirme, vb.). Bir çeşit ilerici gelişmedir ve SEO, engelli javascript ve eski tarayıcı uyumsuzluklarıyla ilgilenir.

Bu aynı soru SO'da da sorulmuştu, ama ben aşkım için nerede olduğunu hatırlayamıyorum.


5

JavaScript kullanımı birkaç durumda sınırlı olabilir:

  • Doğrulama. Sunucu tarafında yapılması gerekiyor. Bazen web uygulamalarında hızlı bir istemci tarafı doğrulaması olabilir, ancak tek başına yeterli değildir.
  • Son derece önemli görevler. Kullanıcılar, tarayıcılarının komut dosyalarını devre dışı bırakmayı seçebilir, böylece JS kodu hiç çalışmayacaktır. Herhangi bir tarayıcıda herhangi bir durumda bir şeyin çalışacağından emin olmak istiyorsanız, JS'ye güvenmeyin.
  • Hız. JS kodunun istemciye gönderilmesi gerekir ve ne kadar fazla kod yazarsanız o kadar uzun sürer. Küçük miktarlarda kodun pratik bir etkisi olmayacak olsa da.

JS, sunucu tarafı koduyla değiştirilemeyen çok sayıda özelliğe sahiptir. Yukarıdakilerin dışında, JS kullanımını sınırlamak için herhangi bir makul argüman olacağını sanmıyorum.


5

" Veritabanı web siteleri " cevabın anahtarıdır. Web siteleri oluşturmanın iki yolu vardır ve izin verilen Javascript miktarı, hangisini kullandığınıza bağlı olarak değişir. İnşa edebilirsiniz:

  1. İçerik merkezli web siteleri . İlk durumda, sihirli sözler "ilerici gelişme" dir; javascript'i, düz HTTP üzerinden içeriğe klasik erişimlerle sağlanabilecek yedekli işlevlerle sınırlandırın.

  2. Web uygulamaları . Uygulamalar için, web sitesini bunun yerine bir yazılım platformu olarak kullanıyorsunuz. Uygulamalar mevcut yazılımla ilgili bazı varsayımlara dayanmaktadır - modern tarayıcılar, popüler javascript kütüphanelerinin en son sürümleri, fare ve / veya çoklu dokunuşlu tabletler ile masaüstü erişimi.

Yazılım platformu olarak web

Eğer gerçekten bir uygulama oluşturuyorsanız, minimum erişim gereklilikleri tamamdır; aksi takdirde yapılamayan gelişmiş özellikler kazanmak için belirli bir platformu hedeflersiniz. Sadece Python veya Java veya .Net için geliştirme yapmak gibi. HTML5 gibi kelimelerin ve "her yerde koşun" sözünün sizi aldatmasına izin vermeyin; Tüm platform üzerinde desteklendiği sürece, cihazlar arasında taşınabilir kod olabilir. Geliştirme yığındaki herhangi bir değişiklik ve yazılım bozulacaktır.

Dolayısıyla, ödenecek bedel, platformun yeni sürümleri yayınlandıkça hareketli bir hedefi takip ediyor olmanızdır; uygulamanızın platform ilerledikçe çalışmaya devam etmesi için yetişmek zorunda kalacaksınız. Alacağınız tek avantaj, uygulamanız için paketlere veya uygulama mağazalarına bağlı olmayan yarı evrensel bir dağıtım mekanizmasıdır; Ancak web'i önceki ağ bilgisayar sistemlerinden ayıran ana özelliği kaybedersiniz.

İçerik sunumu olarak web

İçerik merkezli web siteleri farklı bir canavardır; klasik World Wide Web geleneğindedirler. İçerik sunumdan önce istenen herhangi bir dönüşümü yapabilen müşteri tarafından serbestçe yorumlanır. Siteye, mevcut standartları destekleyebilecek ya da desteklemeyebilecek farklı platformlardan oluşan bir ekosistem tarafından erişilmesi bekleniyor:

  • En yeni ve en pahalı zil ve düdüklerden daha azını destekleyen mobil cihazlar
  • Güncelleme yapamayan (kurumda) veya bilmeyen (evde) eski tarayıcı kullanıcıları
  • Eski API'lerini kullanımdan kaldıran popüler motorların gelecek sürümleri

Her zaman gelişen javascript türüne ihtiyaç duyarsanız hepsini kaybedeceksiniz. Bu bağlamda, içeriğe erişimi engelleyen bozuk bir javascript günahtır.

"Javascript kullanımı en aza indirilmelidir" diyen herkes bu tarzı savunuyor. It yolundaysa dahil etmek bazı JS sakıncası, ancak tüm fonksiyonlar sunucu tarafında elde edilebilir içeriğe temel Accesss ile gereksiz şekilde olmalıdır:

  • Veri girişi doğrulama
  • En hızlı gezinme için içerik AJAX güncellemeleri (yine de JS olmadan çalışır)

Bu yaklaşımın avantajı daha az test ve yükseltme gerektirir ve daha fazla raf ömrü. 20 yıl öncesindeki ilk statik web sayfaları hala herhangi bir web istemcisinde görüntülenebilir, ancak ilk web uygulamaları sonsuza dek bozuldu. Sitenizin herhangi bir arşivleme değeri varsa, web'i bir uygulama platformu olarak değil, içerik dağıtım sistemi olarak kullanmanın uzun vadesinde faydalanabilirsiniz.


3

Eyalet hükümetim için çalışıyorum ve bunun sonucunda gelişimimin çoğu veriye dayalı etkileşimli web siteleri içeriyor. Tarihsel verilere karşı sorgular, sunumlar, bunun gibi şeyler. Javascript'i aşağıdaki nedenlerden dolayı mutlak bir asgari düzeyde tutarız:

1) Form girişlerinin doğrulanması her zaman sunucu tarafında, asla müşteri tarafında olmamalıdır. Girdilerinizi istemci tarafında doğrulamaya çalışırsanız, bir hacker'ın tek yapması gereken web sayfanızın yerel bir kopyasını oluşturmak ve Javascript'i size ne istediğini sağlamak için yeniden yazmaktır (SQL enjeksiyon vb.). Doğrulamanız özel kontrolünüz altında, yani sunucuda yapılmalıdır.

2) Birçok kullanıcı Javascript'i kapatır veya düzgün şekilde uygulayamayacak bir tarayıcı kullanır. Hükümet olarak, gerçekten GERÇEKTEN eski ekipman kullanıyor olsalar bile, herkesi desteklemek zorundayız. HTML her yerde çalışır; Javascript, çok değil. Javascript'i web sayfalarınızda kullanmamakla, onlara az kaynak kullanarak, istemci makinede çok az yer kaplarsınız. Bu, içeriğinize erişebilecek kişi sayısını en üst düzeye çıkarır. Aynı nedenden ötürü, CSS’nizle fazla uğraşmamalısınız. Basit tutun, temiz tutun ve küçük yaşlı bayanların bilgisayarlarını 1999'da satın alsalar bile sitenizi görmelerine izin verin (Bu arada, bu tür insanlardan teknik destek çağrıları alıyoruz).

3) Javascript, sunucu tarafındaki programcılar yerine "web geliştiricileri" tarafından tercih edilen bir araç olarak oldukça çirkin olma eğilimindedir. Ve tasarımcılar (genellikle web geliştiricilerinin ne olduğu, dürüst olmak istiyorsanız) web'deki rastgele yerlerden "script" lerin indirilmesiyle ilgili bir problem görmüyor. "Tekerleği neden yeniden icat ettin?" Gibi şeyler söylüyorlar. ve "Burada İcat Edilmedi". Bu yüzden kendi kodlarını yazmak yerine, sık sık dışarı çıkıyorlar ve başka bir siteden bir şeyler alıyorlar, internette olsa adil bir oyun olduğunu düşünüyorlar. Bununla ilgili iki sorun var: A) istemeden sizi yakalamak için zaman harcayan kötü amaçlı bir Javascript yayınlayabilirler ve B) birinin telif hakkından mahrum kalabilir ve dava açabilirler. Her iki durumdan da kaçınılmalıdır.

GENEL, Javascript kötü bir fikirdir. HERHANGİ bir tür müşteri tarafı kodu kötü bir fikirdir. Müşteri tarafı sadece biçimlendirme dili ve CSS içermelidir; sunucu tarafının ağır kaldırma işlemini yapmasına izin verin.


2

Değişir.

Masaüstü kullanıcı aracılarının javascript'inizi anlamlı bir şekilde desteklemesi ve çalıştırması beklenirken, tüm kullanıcı aracılarının grafik masaüstü tarayıcıları olmadığı ve bunlara hitap etmek isteyip istemediğinize karar vermeniz gerekir.

Örnekler şunları içerir:

  • arama motorları (Google bazı javascript yayınlar, ancak kesinlikle hepsini kullanmaz ve gezinme için javascript’e güvenirseniz, arama botları içeriğinizin tamamını bulamayabilir)
  • toplayıcılar ve sıyırıcılar
  • metin tabanlı tarayıcılar (bunlardan pek azı kullanılmaz)
  • ekran okuyucular ve diğer okuma yardımcıları
  • (bazı) mobil tarayıcılar

Genel kural, düzenli kullanıcılar için bir web uygulamasıysa (kurum içi, topluluk, bu tür şeyler), o zaman javascript'e güvenmek tamamdır, ancak kamuya açık ve erişilebilir olmak istiyorsanız, en azından hayati önem taşır. işlevsellik, javascript olmadan kusursuz bir şekilde çalışmalı ve 'tanımsız' davranış sergilemek yerine, ihtiyacınız olduğunda incelikle başarısız olmalısınız.


2

Eski moda yaklaşım tamamen modası geçmiş. Örneğin, sitelerden birinde moderatör için bir ajax-silme işlemi yaptım ve bariz hız artışı yüzünden sadece mutlu.

Elbette geliştirici hem JS hem de JS dışı kullanıcılar için iki sürüm yapabilir, ancak çoğu durumda bu son derece pahalıdır ve web sitesi izleyicisinin% 1-2'sine değmez (elbette Google değilseniz).

Bu yüzden cevabım HAYIR olurdu - JavaScript birçok kullanıcı deneyimi sorusunun cevabı, neden kullanmamalıyım?


1

Tecrübelerime göre, şirketlerin JavaScript’i politikalara göre devre dışı bıraktığı bir zaman vardı. Ama bu sefer çok uzadı. Şu anda daha büyük küresel şirketler için bazı büyük intranet uygulamaları ve web uygulamaları geliştirdim. Tüm uygulamalar için, JavaScript ve JQuery kullanımı, müşterinin beklediği şeylerin bir parçasıydı.

Müşteriler için uygulama oluşturmak artık sadece hız ve güvenlik değil. Müşteri kullanılabilirlik ve AJAX teknolojisinin kullanımına odaklanmak istiyor. JavaScript kullanmadan bu kadar iyi çalışmaz. PostBack, hesaplama gibi bazı çok küçük görevler için her zaman her zaman bir seçenek değil, çoğu şirket içindir.

Daha büyük şirketlerdeki mevcut durumları düşündüğümüzde, JavaScript'in neden olması gerektiğine dair başka bir gösterge var. Halen işletmede çalışan CMS sistemlerine bakın. Birçoğu Microsoft SharePoint veya Adobe CQ, bazıları Drupal veya diğerleri vb. Bütün bu sistemler JavaScript'e güveniyor. Javascript olmadan, uygulamanın çoğu, kullanıcının beklediği gibi çalışmayacaktır.


0

Geçtiğimiz zamanlarda, JavaScript kullanıldı ve kötüye kullanıldı ve komut dosyaları güvenlik açığı ve kötü amaçlı yazılımlarla doluydu (algılandı).

Birçok kurumsal ağ, bugün birçok kuruluşta (doğru ya da yanlış) hala var olan bir politika olan JS'yi devre dışı bırakarak yanıt verdi.

Oldukça basit, hiçbir sitenin JS'yi işletmesi için güvenmemesi gerektiğini düşünüyorum.


3
Bence bu görüş tamamen güncel değil. Çoğu şirket intranet çözümleri için SharePoint veya CQ kullanıyor. Her iki sistem de gerçek anlamda JS'ye güveniyor.
Smokefoot

Kesinlikle "çoğu şirket" in Sharepoint kullandığını ... reddediyorum ... ve JS’ye dahili olarak izin veren şirketler için bile, Intranet ayarları harici olanlardan farklı olabilir.
Andrew,

0

Buradaki cevapların çoğunun açıkladığı gibi, kullanmak javascriptzararsızdır. Kodlama ve dağınık görünümlü kaynak kodunuzu coffee-scriptkaydetmek istiyorsanız, çok fazla çaba harcamanızı engelleyiniz javascript.

http://coffeescript.org/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.