私はほぼ10年間Web開発者であり、可能な限りJavaScriptを使用しないようにしようとする習慣になりました。ここではWebアプリの構築についてではなく、データベース駆動型のWebサイトについて述べています。
これは良い/尊敬されるアプローチですか?
私はほぼ10年間Web開発者であり、可能な限りJavaScriptを使用しないようにしようとする習慣になりました。ここではWebアプリの構築についてではなく、データベース駆動型のWebサイトについて述べています。
これは良い/尊敬されるアプローチですか?
回答:
あらゆる種類のコードを削減することは、ほとんどのプログラマーの本能です。コードが少ないほど、複雑さが減り、コード内のエラーの可能性が少なくなります。このルールは、Javascriptだけでなく他の言語にも適用されます。あなたはただ伝統を支持しているだけです。
HTMLページ内で必要に応じて、または必要に応じてJavascriptを使用します...しかし、実際に必要でない場合に使用する理由はありません。
10年前、それは良いアイデアだったかもしれません。最近では、ブラウザのJavascriptを無効にすると、インターネットのほとんどの部分(少なくとも一部の非常に人気のある部分)がほとんど使用できなくなるか、非常に制限された機能のみを提供します。だから、今日の私見では、ユーザーがJavascriptを有効にすることを期待できます。
また、ブラウザの非互換性を回避するために、JQueryのような多くのフレームワークがあります。私見今日、あなたのウェブサイトにJavascriptを使用しないことで自分自身を制限すべき本当の理由はありません-唯一の理由は、あなたがそれを使用していないことかもしれません。
編集:別の質問です:訪問者がJSを有効にしていないときにWebサイトの最小限の機能を提供する必要がある場合 -これは、コメント者の一部が指摘している理由から、ほとんどが良い考えです。
EDIT2:確かに、すべてのWebサイトで、ユーザーフレンドリー、検索エンジンフレンドリー、開発努力のバランスを見つける必要があります。今日の私見Javascriptは、そのバランスを改善するのに役立ちます-賢明に使用すれば。そうは言っても、そのバランスを保つために、一般的に今日のJavascriptの使用を最小限に抑える必要はないと思います。注意して使用し、悪魔にしないでください。
JavaScriptなしで使用できるサイトがあるということは、可能な限り多くのユーザーが利用できることを意味します。大半のブラウザーがJavaScriptをサポートし、大半のユーザーがデフォルトでJavaScriptをオンのままにしているのは事実ですが、確かにそれを期待することはできません。結局のところ、サイトにアクセスするすべてがブラウザであるとは限りません。Googleなどの検索エンジンによってサイトのインデックスを適切に作成する場合、GoogleBotはJavaScriptなしでサイトをナビゲートできる必要があります。
JavaScriptが利用できない、または期待どおりに機能しないWebブラウジングソフトウェアの専門家もいます。たとえば、視覚障害者が使用する画面読み上げソフトウェアまたは点字ソフトウェア。また、スマートフォンのブラウザなど、メモリに制約があり、大量のJavaScriptを使用するとブラウジングエクスペリエンスが不快になったり、実用的でなくなったりする環境もあります。
JavaScriptなしで動作するサイトを構築し、その上にjavascriptレイヤーを追加してユーザーエクスペリエンスを向上させる「プログレッシブエンハンスメント」の概念を検討する必要があります。そうすれば、javascriptを使用していない人でも使用できるサイトを作成できます。
JavaScriptを使用して実装する予定のすべての機能を非JavaScriptブラウザーに提供するよう努力する必要はありませんが、少なくとも基本的なユースケースをJavaScriptなしで使用できるようにすることが重要です。サイトを閲覧できることは明らかにリストのトップですが、eコマースサイトを構築している場合、チェックアウトプロセスをJavaScriptに依存させることは、販売にコストがかかる可能性があるため、ばかげています。
他の答えは「JavaScriptを使用するべきではない」ことに焦点を合わせているように思われるので、彼らはポイントを失っていると思います。必要ない場合はJavaScriptを使用しないでください。一部の人々はすべてに JavaScriptを使用します。
href
妥当な場合に必要)利点は次のようなものです。
href
リンクがあると、検索エンジン、他のタブでリンクを開きたいユーザー、JavaScriptを嫌うユーザーに役立ちますもちろん、AJAXは非常にクールであり、動的なページでもあるため、一部の人々がそれらを必要としないという理由だけでそれらのものを捨てないでください。
私のポイントは、JavaScriptなしで物事を行う方法を学ぶことは良いことです。JavaScriptを最小化することは良いことです。
不要な機能、期間を避けることをお勧めします。jQueryのようなフレームワークを使用すると、追加する意味があるかもしれませんが、そうでないこともあるフリルを非常に簡単に追加できます。例えば:
本当にアニメートする必要がありますか?
...または...
このような単純なセレクターにDOM全体をトラバースすることは本当に必要ですか?コンテキストを使用して制限してもらえますか、そもそもそれが必要ですか?
私はJSの使用を避けることはしませんが、遅いマシンを探している間は不快にならないように注意します。同じことは、ドロップシャドウなど、CSS3で得られるいくつかの派手な新しいものにも当てはまります。過度に使用すると、低出力のマシンのユーザーが非常に悪い体験をする可能性があります。
これの例外は、さまざまな種類のアプライアンスのフロントエンドコントロールを記述することです。そこでは、JSを無効にして絶対に動作する必要があります(おそらく、データセンター管理ネットワークの厳格なセキュリティポリシーはJSを要求しません)。したがって、上記の要件は、あなたが持っているあらゆる要件との関連でとられるべきです。
JavaScriptの使用は、いくつかの場合に制限できます。
JSには非常に多くの機能がありますが、サーバー側のコードに置き換えることはできません。上記以外に、JSの使用を制限する合理的な議論はないと思います。
「データベース駆動型ウェブサイト」が答えの鍵です。Webサイトを作成するには2つの方法がありますが、実際に使用しているJavascriptの量によって異なります。以下を構築できます。
コンテンツ中心のウェブサイト。最初のケースでは、魔法の言葉は「漸進的強化」です。JavaScriptを、プレーンHTTPを介したコンテンツへの古典的なアクセスで提供できる冗長な機能に制限します。
Webアプリケーション。アプリケーションでは、代わりにソフトウェアプラットフォームとしてWebを使用しています。アプリは、利用可能なソフトウェアに関するいくつかの仮定に依存しています-最新のブラウザー、人気のあるjavascriptライブラリの最新バージョン、マルチタッチを備えたマウスやタブレットを使用したデスクトップアクセス。
実際にアプリケーションを構築している場合、最小アクセス要件は問題ありません。特定のプラットフォームをターゲットにして、他の方法では構築できない高度な機能を取得します。Python、Java、または.Net用に開発するようなものです。HTML5のような流行語や「どこでも実行」の約束に惑わされないでください。プラットフォーム全体がデバイスでサポートされている場合にのみ、デバイス間でポータブルコードを使用できます。開発スタックへの変更、およびソフトウェアは破損します。
したがって、支払うべき代償は、プラットフォームの新しいバージョンがリリースされたときに、移動する目標をたどることです。プラットフォームの進化に合わせてアプリを機能させるには、追いつく必要があります。唯一のメリットは、パッケージやアプリケーションストアに依存しない、アプリの準ユニバーサル配信メカニズムです。ただし、以前のネットワーク化されたコンピューターシステムとウェブを区別する主な機能は失われます。
コンテンツ中心のWebサイトは別の獣です。それらは、古典的なWorld Wide Webの伝統です。コンテンツはクライアントによって大まかに解釈され、プレゼンテーションの前に必要な変換を行うことができます。このサイトは、現在の標準をサポートする場合としない場合があるさまざまなプラットフォームのエコシステムによってアクセスされることが期待されています。
常に進化している現在の種類のjavascriptが必要な場合、それらはすべて失われます。このコンテキストでは、コンテンツへのアクセスを妨げる破損したjavascriptは罪です。
「javascriptの使用は最小限に抑えるべきだ」と言っている人は皆、このスタイルを支持しています。いくつかの JS を含めることは問題ありませんが、すべての機能は、サーバー側で実現できるコンテンツへの基本的なアクセスで冗長にする必要があります。
このアプローチの利点は、必要なテストとアップグレードが少なくなり、保存期間が長くなることです。20年前の最初の静的WebページはどのWebクライアントでも閲覧可能ですが、最初のWebアプリケーションは永遠に壊れています。サイトにアーカイブの価値がある場合、アプリケーションプラットフォームではなくコンテンツ配信システムとしてWebを使用することで、長期的にはメリットが得られます。
私は州政府で働いています。その結果、私の開発の大部分はデータ駆動型のインタラクティブなWebサイトに関係しています。履歴データ、フォーム送信などに対するクエリ。以下の理由により、Javascriptを最小限に抑えています。
1)フォーム入力の検証は常にクライアント側ではなくサーバー側で行う必要があります。クライアント側で入力を検証しようとする場合、ハッカーがしなければならないことは、Webページのローカルコピーを作成し、Javascriptを書き換えて、送信したいもの(SQLインジェクションなど)を許可することだけです。検証は、排他制御下のどこか、つまりサーバー上で行う必要があります。
2)多くのユーザーは、Javascriptをオフにするか、適切に実装しないブラウザーを使用します。政府であるため、本当に古い機器を使用している場合でも、すべての人をサポートする必要があります。HTMLはどこでも動作します。Javascript、それほどではありません。WebページでJavascriptを使用しないことで、少ないリソースを使用して、クライアントマシン上のフットプリントを非常に小さくできます。これにより、コンテンツにアクセスできるユーザーの数が最大になります。同じ理由で、CSSを使いすぎないようにしてください。シンプルに、清潔に保ち、1999年にコンピューターを購入したとしても、小さな老婦人にサイトを見せてください(ちなみに、このような人々から技術サポートの電話があります)。
3)Javascriptは、サーバーサイドのプログラマーよりも「ウェブ開発者」に好まれているツールであり、かなり見苦しい傾向があります。そして、デザイナー(正直なところ、通常Web開発者はそうです)は、Web上のランダムな場所から「スクリプト」をダウンロードする際の問題に気付かない傾向があります。彼らは「なぜ車輪を再発明するのか?」および「ここでは発明されていません」。そのため、独自のコードを書く代わりに、彼らはしばしば外に出て別のサイトから何かを入手し、それがインターネット上にある場合は公正なゲームだと考えます。これには2つの問題があります。A)キャッチするのに時間がかかる悪意のあるJavascriptをうっかり投稿してしまう可能性があります。B)誰かの著作権を侵害し、訴えられる可能性があります。両方の状況を回避する必要があります。
一般的に、Javascriptは悪い考えです。任意の種類のクライアント側コードは悪い考えです。クライアント側には、マークアップ言語とCSSのみを含める必要があります。サーバー側で重い物を持ち上げてください。
場合によります。
デスクトップユーザーエージェントは、javascriptを有意義な方法でサポートおよび実行することが期待されますが、すべてのユーザーエージェントがグラフィカルなデスクトップブラウザーではないため、それらに対応するかどうかを決定する必要があります。
例は次のとおりです。
私の経験則では、通常のユーザー(社内、コミュニティなど)向けのWebアプリケーションであれば、javascriptに依存することは問題ありませんが、一般にアクセスして検索できるようにするには、少なくとも重要なことです。 JavaScriptがなくても機能は問題なく動作するはずです。また、「未定義」の動作を示すのではなく、必要なときに正常に失敗する必要があります。
昔ながらのアプローチは完全に時代遅れです。たとえば、私はサイトの1つでモデレーターのajax削除を行いました。彼は明らかな速度の向上のために満足しています。
もちろん、開発者はJSユーザーと非JSユーザーの両方に対して2つのバージョンを実行できますが、ほとんどの場合、非常に高価であり、ウェブサイトのオーディエンスの1-2%の価値はありません(もちろんGoogleでない場合)。
私の答えは「いいえ」です。JavaScriptは多くのユーザーエクスペリエンスの質問に対する答えです。JavaScriptを使用しないのはなぜですか。
私の経験から、企業がポリシーによってJavaScriptを無効にすることがありました。しかし、この時間は過ぎ去りました。現在、私は大企業向けにいくつかの大きなイントラネットアプリケーションとWebアプリケーションを構築しています。すべてのアプリケーションで、JavaScriptとJQueryの使用は、顧客が期待するものの一部でした。
顧客向けのアプリケーションの構築は、速度とセキュリティだけではありません。お客様は、使いやすさとAJAXテクノロジーの使用に集中したいと考えています。JavaScriptを使用しないと、それほどうまく機能しません。PostBacksは、計算などの非常に小さなタスクのために常に、ほとんどの企業にとっては選択肢ではありません。
大企業の現在の状況を考えると、JavaScriptが現在必須である理由がもう1つあります。現在ビジネスで実行されているCMSシステムを見てください。それらのほとんどはMicrosoft SharePointまたはAdobe CQを使用し、一部はDrupalなどを使用しています。このシステムはすべてJavaScriptに依存しています。javascriptがなければ、ユーザーが期待するように、ほとんどのアプリケーションは動作しません。
過去には、JavaScriptが使用され、悪用され、スクリプトには脆弱性とマルウェアのソースがいっぱいであると認識されていました。
多くの企業ネットワークは、JSを無効にすることで対応しました。これは、今日でも多くの組織に(間違いなく)存在するポリシーです。
簡単に言えば、JSに依存して動作するサイトはないことをお勧めします
ここでの回答のほとんどが説明しているように、使用しjavascript
ても害はありません。コーディングや見づらいソースコードを保存したい場合は、coffee-script
入力する手間が省けますjavascript
。