Webサイトを構築するときにJavaScriptの使用を最小限に抑えることは一般的な習慣ですか?[閉まっている]


32

私はほぼ10年間Web開発者であり、可能な限りJavaScriptを使用しないようにしようとする習慣になりました。ここではWebアプリの構築についてではなく、データベース駆動型のWebサイトについて述べています。

これは良い/尊敬されるアプローチですか?


6
私は標準のjavascriptを無効にし、noscriptはjavscriptsがロードされたソースを教えてくれます。Webサイトが10を超えるセカンダリソースからjavascriptをロードすることは珍しくありません。これにより、ターシャリソースからjavascriptもロードされます。また、合計20を超える外部ソースからページがJavaScriptを読み込むことも珍しくありません。だから私は言いたい:javascriptの使用を最小限に抑えることは窓の外です。
ピーターB

9
依存するjavascriptが多いほど、サイトがナビゲーションフレンドリーでSEOフレンドリーでなくなることがわかりました。「javascriptリンク」などのために、私が残したウェブサイトの数は数えられません。
BiAiB

1
Internetzには非常に多くのjavascriptがあることがわかりました。問題は、1)単純なインデクサーがjsを理解しない、2)大量のjsがCPUを消費する3)一部のプラットフォームにはまだjs(電話、リンクブラウザー)がない。そのため、不要なときにjsを避けることをお勧めします。
-permeakra

今週のこの質問はなぜですか?私はこれを明確ではなく、建設的ではないと投票します。一般に、「Xを使用する必要がありますか?」このサイトでは質問を受け付けていません。誰かが私を啓発できるかもしれません。
マークE.ハーセ

Microsoft Webスタックは(これまでMVCを使用して)ASP.NETおよびSharePointのすべてのシングルボタンクリックでJSに依存していました。いいえ、使用量を最小限にすることは一般的ではありません。
グラハム

回答:


51

あらゆる種類のコードを削減することは、ほとんどのプログラマーの本能です。コードが少ないほど、複雑さが減り、コード内のエラーの可能性が少なくなります。このルールは、Javascriptだけでなく他の言語にも適用されます。あなたはただ伝統を支持しているだけです。

HTMLページ内で必要に応じて、または必要に応じてJavascriptを使用します...しかし、実際に必要でない場合に使用する理由はありません。


9
JavaScriptを避けることは、より多くのコードを避けるための一般的な本能とは別の問題です。JSでは、開発の複雑さを軽減するだけではありません。ユーザーとの互換性の本当の問題があります。
-jhocking

34

10年前、それは良いアイデアだったかもしれません。最近では、ブラウザのJavascriptを無効にすると、インターネットのほとんどの部分(少なくとも一部の非常に人気のある部分)がほとんど使用できなくなるか、非常に制限された機能のみを提供します。だから、今日の私見では、ユーザーがJavascriptを有効にすることを期待できます。

また、ブラウザの非互換性を回避するために、JQueryのような多くのフレームワークがあります。私見今日、あなたのウェブサイトにJavascriptを使用しないことで自分自身を制限すべき本当の理由はありません-唯一の理由は、あなたがそれを使用していないことかもしれません。

編集:別の質問です:訪問者がJSを有効にしていないときにWebサイトの最小限の機能を提供する必要がある場合 -これは、コメント者の一部が指摘している理由から、ほとんどが良い考えです。

EDIT2:確かに、すべてのWebサイトで、ユーザーフレンドリー、検索エンジンフレンドリー、開発努力のバランスを見つける必要があります。今日の私見Javascriptは、そのバランスを改善するのに役立ちます-賢明に使用すれば。そうは言っても、そのバランスを保つために、一般的に今日のJavascriptの使用を最小限に抑える必要はないと思います。注意して使用し、悪魔にしないでください。


17
ここにいくつかあります:SEO、ウェブアグリゲーター、スクリーンリーダー、NoScript、curl、モバイルブラウザー。デフォルトでスクリプトを無効にしますが、ほとんどのインターネットはまだ正常に動作します。
-tdammers

7
JavaScriptなしではサイトを使用できない場合、Googleで効果的にクロールできず、RESTfulコンテキストで使用できる場合と使用できない場合があります。Facebookでさえ、少なくともJavaScriptを使用しないと最低限の使用しかできません
GordonM

9
ここで述べられていることの大部分には同意しますが、サイトは「少なくともJavaScriptなしで最低限使用できる」という考えに強く反対します。それは間違っています。JavaScriptがなくても最大限に使用できるはずです。
ヨルグWミットタグ

4
@JörgWMittagWebテクノロジーを無効にする場合、Webサイトのすべてのメリットを期待することはできません。シナリオは異なりますが、Webアプリを構築する場合、おそらく21世紀への移行を拒否する少数のユーザーとの完全な互換性の構築に時間を浪費することはないでしょう。ほとんどのプロジェクトでIE 6をサポートしていないのと似ています。
トムマーセナル

2
すべてのユースケースをサポートするのは専門家だけです。あなたがそれを見逃したなら、それは大丈夫です、誰もが時々エラーを起こしますが、彼らを無視することは別の問題です。私はWebサイトをJSなしで100%開発することに全力を注いでいます。それを機能させた後、JSを追加してタスクを合理化し、UXを改善します。
-Spidey

13

JavaScriptなしで使用できるサイトがあるということは、可能な限り多くのユーザーが利用できることを意味します。大半のブラウザーがJavaScriptをサポートし、大半のユーザーがデフォルトでJavaScriptをオンのままにしているのは事実ですが、確かにそれを期待することはできません。結局のところ、サイトにアクセスするすべてがブラウザであるとは限りません。Googleなどの検索エンジンによってサイトのインデックスを適切に作成する場合、GoogleBotはJavaScriptなしでサイトをナビゲートできる必要があります。

JavaScriptが利用できない、または期待どおりに機能しないWebブラウジングソフトウェアの専門家もいます。たとえば、視覚障害者が使用する画面読み上げソフトウェアまたは点字ソフトウェア。また、スマートフォンのブラウザなど、メモリに制約があり、大量のJavaScriptを使用するとブラウジングエクスペリエンスが不快になったり、実用的でなくなったりする環境もあります。

JavaScriptなしで動作するサイトを構築し、その上にjavascriptレイヤーを追加してユーザーエクスペリエンスを向上させる「プログレッシブエンハンスメント」の概念を検討する必要があります。そうすれば、javascriptを使用していない人でも使用できるサイトを作成できます。

JavaScriptを使用して実装する予定のすべての機能を非JavaScriptブラウザーに提供するよう努力する必要はありませんが、少なくとも基本的なユースケースをJavaScriptなしで使用できるようにすることが重要です。サイトを閲覧できることは明らかにリストのトップですが、eコマースサイトを構築している場合、チェックアウトプロセスをJavaScriptに依存させることは、販売にコストがかかる可能性があるため、ばかげています。


4
絶対に。Javascriptは、メインコースではなく、スパイスとして使用する必要があります。
-hlovdal

9

他の答えは「JavaScriptを使用するべきではない」ことに焦点を合わせているように思われるので、彼らはポイントを失っていると思います。必要ない場合はJavaScriptを使用しないでください。一部の人々はすべてに JavaScriptを使用します

  • ホバー効果(CSSである必要があります)
  • AJAX(href妥当な場合に必要)
  • ポジショニング(CSSでなければなりません)

利点は次のようなものです。

  • サイトはより速く表示されます
  • CSSは、ほとんどの場合JavaScriptよりもはるかに複雑ではありません
  • バックアップhrefリンクがあると、検索エンジン、他のタブでリンクを開きたいユーザー、JavaScriptを嫌うユーザーに役立ちます

もちろん、AJAXは非常にクールであり、動的なページでもあるため、一部の人々がそれらを必要としないという理由だけでそれらのものを捨てないでください。

私のポイントは、JavaScriptなしで物事を行う方法を学ぶことは良いことです。JavaScriptを最小化することは良いことです。


1
何年も前に、(当時は呼ばれていた)Man Machine Interfacesについてのアドバイスを与えられたことを覚えています:「できるからといって、そうすべきではない」音などが乗る必要があります。
アンドリュー

8

不要な機能、期間を避けることをお勧めします。jQueryのようなフレームワークを使用すると、追加する意味があるかもしれませんが、そうでないこともあるフリルを非常に簡単に追加できます。例えば:

本当にアニメートする必要がありますか?

...または...

このような単純なセレクターにDOM全体をトラバースすることは本当に必要ですか?コンテキストを使用して制限してもらえますか、そもそもそれが必要ですか?

私はJSの使用を避けることはしませんが、遅いマシンを探している間は不快にならないように注意します。同じことは、ドロップシャドウなど、CSS3で得られるいくつかの派手な新しいものにも当てはまります。過度に使用すると、低出力のマシンのユーザーが非常に悪い体験をする可能性があります。

これの例外は、さまざまな種類のアプライアンスのフロントエンドコントロールを記述することです。そこでは、JSを無効にして絶対に動作する必要があります(おそらく、データセンター管理ネットワークの厳格なセキュリティポリシーはJSを要求しません)。したがって、上記の要件は、あなたが持っているあらゆる要件との関連でとられるべきです。


6

私は、比較的新しく若いWeb開発者(約4年)であるため、javascriptはどこにでもあるので、これについて多くの調査をしなければならなかったと思います。

私のプロジェクトでやろうとしているのは、サイトがjavascriptなしで機能することを確認し、意味のある場所にjavascriptを追加することです(クライアント側の検証、UIの改善など)。それは一種の進歩的な強化であり、SEO、無効化されたjavascript、古いブラウザの非互換性を処理します。

これと同じ質問がSOで行われましたが、私の愛のためにどこで覚えているかはわかりません。


5

JavaScriptの使用は、いくつかの場合に制限できます。

  • 検証。サーバー側で実行する必要があります。Webアプリケーションでは、クライアント側の迅速な検証が行われることもありますが、それだけでは十分ではありません。
  • 非常に重要なタスク。ユーザーはブラウザのスクリプトを無効にすることを選択できるため、JSコードはまったく機能しません。どのブラウザーでもどのような場合でも何かが機能することを確認したい場合は、JSに信頼しないでください。
  • 速度。JSコードはクライアントに送信する必要があり、コードを多く書くほど時間がかかります。少量のコードでは実用的な効果はありませんが。

JSには非常に多くの機能がありますが、サーバー側のコードに置き換えることはできません。上記以外に、JSの使用を制限する合理的な議論はないと思います。


5

データベース駆動型ウェブサイト」が答えの鍵です。Webサイトを作成するには2つの方法がありますが、実際に使用しているJavascriptの量によって異なります。以下を構築できます。

  1. コンテンツ中心のウェブサイト。最初のケースでは、魔法の言葉は「漸進的強化」です。JavaScriptを、プレーンHTTPを介したコンテンツへの古典的なアクセスで提供できる冗長な機能に制限します。

  2. Webアプリケーション。アプリケーションでは、代わりにソフトウェアプラットフォームとしてWebを使用しています。アプリは、利用可能なソフトウェアに関するいくつかの仮定に依存しています-最新のブラウザー、人気のあるjavascriptライブラリの最新バージョン、マルチタッチを備えたマウスやタブレットを使用したデスクトップアクセス。

ソフトウェアプラットフォームとしてのWeb

実際にアプリケーションを構築している場合、最小アクセス要件は問題ありません。特定のプラットフォームをターゲットにして、他の方法では構築できない高度な機能を取得します。Python、Java、または.Net用に開発するようなものです。HTML5のような流行語や「どこでも実行」の約束に惑わされないでください。プラットフォーム全体がデバイスでサポートされている場合にのみ、デバイス間でポータブルコードを使用できます。開発スタックへの変更、およびソフトウェアは破損します。

したがって、支払うべき代償は、プラットフォームの新しいバージョンがリリースされたときに、移動する目標をたどることです。プラットフォームの進化に合わせてアプリを機能させるには、追いつく必要があります。唯一のメリットは、パッケージやアプリケーションストアに依存しない、アプリの準ユニバーサル配信メカニズムです。ただし、以前のネットワーク化されたコンピューターシステムとウェブを区別する主な機能は失われます。

コンテンツ配信としてのウェブ

コンテンツ中心のWebサイトは別の獣です。それらは、古典的なWorld Wide Webの伝統です。コンテンツはクライアントによって大まかに解釈され、プレゼンテーションの前に必要な変換を行うことができます。このサイトは、現在の標準をサポートする場合としない場合があるさまざまなプラットフォームのエコシステムによってアクセスされることが期待されています。

  • 最新で最も高価な機能をサポートしていないモバイルデバイス
  • 更新方法を(企業で)できない、または(自宅で)わからない(自宅)の古いブラウザーユーザー
  • 古いAPIを廃止する一般的なエンジンの将来のバージョン

常に進化している現在の種類のjavascriptが必要な場合、それらはすべて失われます。このコンテキストでは、コンテンツへのアクセスを妨げる破損したjavascriptは罪です。

「javascriptの使用は最小限に抑えるべきだ」と言っている人は皆、このスタイルを支持しています。いくつかの JS を含めることは問題ありませんが、すべての機能は、サーバー側で実現できるコンテンツへの基本的なアクセスで冗長にする必要があります。

  • データ入力の検証
  • 最も速いナビゲーションのためのコンテンツのAJAX更新(それにもかかわらず、JSなしで動作します)

このアプローチの利点は、必要なテストとアップグレードが少なくなり、保存期間が長くなることです。20年前の最初の静的WebページはどのWebクライアントでも閲覧可能ですが、最初のWebアプリケーションは永遠に壊れています。サイトにアーカイブの価値がある場合、アプリケーションプラットフォームではなくコンテンツ配信システムとしてWebを使用することで、長期的にはメリットが得られます。


3

私は州政府で働いています。その結果、私の開発の大部分はデータ駆動型のインタラクティブなWebサイトに関係しています。履歴データ、フォーム送信などに対するクエリ。以下の理由により、Javascriptを最小限に抑えています。

1)フォーム入力の検証は常にクライアント側ではなくサーバー側で行う必要があります。クライアント側で入力を検証しようとする場合、ハッカーがしなければならないことは、Webページのローカルコピーを作成し、Javascriptを書き換えて、送信したいもの(SQLインジェクションなど)を許可することだけです。検証は、排他制御下のどこか、つまりサーバー上で行う必要があります。

2)多くのユーザーは、Javascriptをオフにするか、適切に実装しないブラウザーを使用します。政府であるため、本当に古い機器を使用している場合でも、すべての人をサポートする必要があります。HTMLはどこでも動作します。Javascript、それほどではありません。WebページでJavascriptを使用しないことで、少ないリソースを使用して、クライアントマシン上のフットプリントを非常に小さくできます。これにより、コンテンツにアクセスできるユーザーの数が最大になります。同じ理由で、CSSを使いすぎないようにしてください。シンプルに、清潔に保ち、1999年にコンピューターを購入したとしても、小さな老婦人にサイトを見せてください(ちなみに、このような人々から技術サポートの電話があります)。

3)Javascriptは、サーバーサイドのプログラマーよりも「ウェブ開発者」に好まれているツールであり、かなり見苦しい傾向があります。そして、デザイナー(正直なところ、通常Web開発者はそうです)は、Web上のランダムな場所から「スクリプト」をダウンロードする際の問題に気付かない傾向があります。彼らは「なぜ車輪を再発明するのか?」および「ここでは発明されていません」。そのため、独自のコードを書く代わりに、彼らはしばしば外に出て別のサイトから何かを入手し、それがインターネット上にある場合は公正なゲームだと考えます。これには2つの問題があります。A)キャッチするのに時間がかかる悪意のあるJavascriptをうっかり投稿してしまう可能性があります。B)誰かの著作権を侵害し、訴えられる可能性があります。両方の状況を回避する必要があります。

一般的に、Javascriptは悪い考えです。任意の種類のクライアント側コードは悪い考えです。クライアント側には、マークアップ言語とCSSのみを含める必要があります。サーバー側で重い物を持ち上げてください。


2

場合によります。

デスクトップユーザーエージェントは、javascriptを有意義な方法でサポートおよび実行することが期待されますが、すべてのユーザーエージェントがグラフィカルなデスクトップブラウザーではないため、それらに対応するかどうかを決定する必要があります。

例は次のとおりです。

  • 検索エンジン(Googleはいくつかの JavaScriptを実行しますが、すべてではありません。ナビゲーションにJavaScriptを使用している場合、検索ボットはすべてのコンテンツを見つけられない可能性があります)
  • アグリゲーターとスクレーパー
  • テキストベースのブラウザ(ただし、多くの人はこれらを使用しません)
  • スクリーンリーダーおよびその他の読み物
  • (一部)モバイルブラウザ

私の経験則では、通常のユーザー(社内、コミュニティなど)向けのWebアプリケーションであれば、javascriptに依存することは問題ありませんが、一般にアクセスして検索できるようにするには、少なくとも重要なことです。 JavaScriptがなくても機能は問題なく動作するはずです。また、「未定義」の動作を示すのではなく、必要なときに正常に失敗する必要があります。


2

昔ながらのアプローチは完全に時代遅れです。たとえば、私はサイトの1つでモデレーターのajax削除を行いました。彼は明らかな速度の向上のために満足しています。

もちろん、開発者はJSユーザーと非JSユーザーの両方に対して2つのバージョンを実行できますが、ほとんどの場合、非常に高価であり、ウェブサイトのオーディエンスの1-2%の価値はありません(もちろんGoogleでない場合)。

私の答えは「いいえ」です。JavaScriptは多くのユーザーエクスペリエンスの質問に対する答えです。JavaScriptを使用しないのはなぜですか。


1

私の経験から、企業がポリシーによってJavaScriptを無効にすることがありました。しかし、この時間は過ぎ去りました。現在、私は大企業向けにいくつかの大きなイントラネットアプリケーションとWebアプリケーションを構築しています。すべてのアプリケーションで、JavaScriptとJQueryの使用は、顧客が期待するものの一部でした。

顧客向けのアプリケーションの構築は、速度とセキュリティだけではありません。お客様は、使いやすさとAJAXテクノロジーの使用に集中したいと考えています。JavaScriptを使用しないと、それほどうまく機能しません。PostBacksは、計算などの非常に小さなタスクのために常に、ほとんどの企業にとっては選択肢ではありません。

大企業の現在の状況を考えると、JavaScriptが現在必須である理由がもう1つあります。現在ビジネスで実行されているCMSシステムを見てください。それらのほとんどはMicrosoft SharePointまたはAdobe CQを使用し、一部はDrupalなどを使用しています。このシステムはすべてJavaScriptに依存しています。javascriptがなければ、ユーザーが期待するように、ほとんどのアプリケーションは動作しません。


0

過去には、JavaScriptが使用され、悪用され、スクリプトには脆弱性とマルウェアのソースがいっぱいであると認識されていました。

多くの企業ネットワークは、JSを無効にすることで対応しました。これは、今日でも多くの組織に(間違いなく)存在するポリシーです。

簡単に言えば、JSに依存して動作するサイトはないことをお勧めします


3
この意見は完全に時代遅れだと思います。ほとんどの企業は、イントラネットソリューションにSharePointまたはCQを使用しています。どちらのシステムも本当にJSに依存しています。
スモークフット

私は絶対に「ほとんどの企業」がSharepointを使用していることに反論します...そしてJSを内部的に許可している企業でさえ、イントラネットの設定は外部とは異なる場合があります。
アンドリュー

0

ここでの回答のほとんどが説明しているように、使用しjavascriptても害はありません。コーディングや見づらいソースコードを保存したい場合は、coffee-script入力する手間が省けますjavascript

http://coffeescript.org/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.