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?
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?
Yanıtlar:
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.
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.
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.
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 :
href
makul olduğunda olmalıdır )Avantajlar şöyledir:
href
bağ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ı olurElbette, 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.
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.
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.
JavaScript kullanımı birkaç durumda sınırlı olabilir:
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.
" 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:
İç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.
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.
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 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:
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:
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.
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.
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:
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.
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?
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.
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.
Buradaki cevapların çoğunun açıkladığı gibi, kullanmak javascript
zararsızdır. Kodlama ve dağınık görünümlü kaynak kodunuzu coffee-script
kaydetmek istiyorsanız, çok fazla çaba harcamanızı engelleyiniz javascript
.