ブラウザにjQueryがインストールされていないのはなぜですか?


19

私はいくつかのWebサイトでjQueryを使用していますが、CDNを使用してサービスを提供していますが、訪問者が毎回jQueryをダウンロードするのは意味がありません。jQueryは世界で最も広く使用されているJavaScriptフレームワークである必要があります。ブラウザにデフォルトでインストールされているだけの場合、それはより意味がありませんか?

そのようにして、1日に何百万回もjQueryのダウンロードを防ぐことができました。人々自身のウェブサイトまたはCDNから。

本当に必要なのは、次のようなifステートメントのようなものです。

 <!--[if jQuery gt 11]>

ユーザーが既に別のサイトからキャッシュにjQueryを持っている場合、CDNへの旅行を防ぐのに役立つ何かがありますか?


3
問題は、ユーザーが既に持っているものをサイトまたはCDNから新たにダウンロードする必要があるのはなぜですか?jQueryは多くの場所から多くのバージョンで提供されています。私はページ速度を心配しており、ユーザーは(特にモバイル)帯域幅を心配しています。ライブラリのゴールドスタンダードがある場合-なぜそれを使用しないのですか?確かに他の例もありますが、それらについても合意された標準(バージョン番号など)がある限り、私もそれらを歓迎します。
user1914292

27
なぜjQueryが、Angular、MooTools、Underscoreなどではないのですか?そして、それぞれのバージョンは?ブラウザには、これまでに作成されたすべてのJavaScriptライブラリのコピーを含める必要がありますか?
user253751

15
「申し訳ありませんが、ブラウザの0.1より高いバージョンにアップグレードするまで私のウェブサイトを使用することはできません」
-VLAZ


4
そのためにキャッシングが行われます。そうでない場合、バージョン処理は基本的に不可能になります
-njzk2

回答:


55

GoogleのHosted Librariescdnjsなどの一般的なCDNからjQueryを提供する場合、訪問者が同じソースからそれを参照しているサイトにいる場合は再ダウンロードされません(キャッシュバージョンの有効期限が切れていない限り)。

jQueryはあなたが言うように人気のあるライブラリですが、ブラウザにバンドルすることはいくつかの理由で起こりそうにありません:

  1. jQueryは比較的小さい(Flashのようにブラウザにバンドルされることがあるライブラリと比較して)。平均的なサイトでの最大のパフォーマンスボトルネックは、jQueryのダウンロードが原因であるとは考えられません。
  2. JavaScript / ECMAScriptの改善により、開発者はjQueryに依存する必要がますます少なくなっています。(youmightnotneedjquery.comを参照してください。)
  3. 他にも非常に多くの人気のあるJavaScriptライブラリがあります。ブラウザは、JavaScriptコードのリポジトリとして設計されていません。スクリプトの人気を追跡し、人気の低いライブラリを削除し、すべてを最新の状態に保つことは、個々のサイトのWeb開発者に任せるのが最適です。

私はこれを理解していますが、現在code.jquery.comをCDNとして使用しています。ただし、別のWebサイトがgoogleapisまたはcdjnsを使用している場合、ブラウザーは再びその他のCDNからjQueryをダウンロードします。それは意味をなさないだけでなく、あちこちで多くの時間/帯域幅がかかります。これに追加すると、ほとんどの場合、jQuery1.7 +のようなものが必要になりますが、さらに悪化します。ブラウザがリポジトリではないという点を理解していますが、ある種の「複数のソースからのキャッシュ」のようなルールを考え出すことはできませんか?
user1914292

24
@ user1914292これは、すべてのブラウザーにjQueryのすべてのバージョンが存在し、jQueryの既知のソースへのリクエストをインターセプトしてキャッシュバージョンに置き換える場合にのみ有用です。わずかな違いさえあれば、デバッグできないバグを引き起こす可能性があります。これは、Webキャッシングが機能するという事実によってさらに悪化し、何十年も機能しています。これらのjQueryリクエストをキャッシュするのはブラウザだけではありません。ブラウザに向かう途中のルーターの多くが同じことを行います。この問題は、帯域幅問題になったずっと前に解決されました:)
Luaan

4)特定のサイトのjqueryコードが、最近の更新で根本的に変更された機能に依存し、コードが期待することを行わなくなった場合はどうなりますか?
シャドゥール

1
@Ejayいいえ、リクエストがブラウザのキャッシュから処理される時間の99%のため、追跡メカニズムとしては機能しません。
-suriv

1
@BenStewardはい、ブラウザの開発ツールを使用して、[ ネットワーク]パネルを確認してください。たとえば、Chromeでは、「サイズ」列に「ディスクキャッシュ」または「メモリキャッシュ」、「ステータス」列にゴースト化された値を持つキャッシュリソースが表示されます(「キャッシュを無効にする」(DevTools開発ツールの設定でアクティブになっています)。キャッシュ制御ヘッダーと、キャッシュされる対象と期間に関するその他の要因に依存します。developer.mozilla.org/en-US/docs/Web/HTTP/Caching
Nick

21

jQueryだけが人気のあるJSライブラリではないだけでなく、ブラウザには複数のバージョンを含める必要がある可能性があります。GoogleのCDN現在のリスト:jQueryのの42のバージョン。jQuery UIの44バージョン。jQuery Mobileの6つのバージョン。

Web開発者が、Webサイトの要件に基づいて、ダウンロードするライブラリのバージョンを定義できるようにすることをお勧めします。Webサイトで現在の実稼働バージョンのjQueryを使用し、より人気のあるCDNからそれロードする、訪問者が既にそれをキャッシュしている可能性が高くなります。


14

ブラウザはエンジンであり、エンジンの設計者の義務ではありません。どのような種類の燃料や追加の部品を車に入れてそれを含めるかを調べます。次の質問は「なぜjQueryなのか?」であり、依存関係のリポジトリを維持することになります。

また、すべてのバージョンを含めますか?誰かがカスタムバージョンを使用したい場合はどうなりますか?誰かがそのライブラリを使用したくない場合はどうなりますか?彼らはどのくらいの頻度で最新リリースをマージしてロールしますか?異なるバージョンのjQueryを備えた異なるブラウザーになりますか?標準化されたHTML、CSS、およびJavaScript機能を同等に実装することさえできません。ブラウザのメンテナーの1人がライブラリまたはその特定のバージョンを含めない場合はどうなりますか?

ブラウザは、完成したソリューションではなく、構築するためのビルディングブロックと環境を提供します。

ブラウザにjQueryを配置しても、サイトの読み込みが非常に高速になるわけではありません。最近ではこれが最大のボトルネックではないためです。ただし、jQueryは不必要に大きなライブラリですが、帯域幅)。高速ロードを中心に設計され、Zeptoのように軽量であるライブラリは他にもたくさんあります。

jQueryのサイズと帯域幅の使用が本当に心配な場合は、使用しないでください。バニラJSについて聞いたことがありますか?jQuery自体を含むほぼすべての人が文字通り使用している、さらに人気のあるライブラリです!そして、すべてのブラウザに含まれているため、すでに夢を実現しました!


2

jQueryのようなライブラリを使用する理由は、互換性です。

ブラウザはより標準に準拠するようになりましたが、jqueryライブラリを使用することにより、ブラウザファミリとバージョンの違いを心配する必要がなくなります。

jqueryを自分で指定することにより、一貫したAPIを確実に使用できます。

ブラウザにjqueryが組み込まれている場合、ユーザーが使用しているバージョンを確認する必要があります。ブラウザに戻り、「このサイトの表示に最適なサイトは...」です。

したがって、ブラウザにjqueryを組み込むことは意味がありません。

また、キャッシュが機能するため、ユーザーがjqueryバージョンをまだ持っていない場合でも、1回ダウンロードするだけで済みます。


-3

ここでのレスポンダーは、質問に対する答えがブラウザがおそらく最も広く使用されているライブラリやポリフィルなどをクライアント側に含めるべきだということを理解していないと思う。

質問する人が述べているように、条件付きコメントを使用して、jqueryを含まないブラウザーを使用しているユーザーに適切なバージョンが提供されるようにすることができます。

Jqueryには、移行による独自の下位互換性サポートも含まれており、条件付きコメントを使用して、新しいjqueryライブラリ全体をダウンロードすることなく、古いjqueryライブラリのパッケージバージョンを持つ人にレトロサポートを提供できます。

これらをブラウザーに含めるための論点は、ユーザーエクスペリエンスとコストだけでなく、私たちが住んでいるこの惑星に関するものでもあります。データの使用は地球規模の汚染に大きな影響を与えます。不必要なデータ転送を最小限に抑えることは、二酸化炭素排出量に劇的な影響を与える可能性があります。

基本的に、パッケージ化されたブラウザーにコードメガバイトを追加するために、同じデータが1日に何十億回も無駄にフェリーされています。

これは、インターネット上のすべてのユーザーのユーザーエクスペリエンスを悪化させます。また、大手企業には莫大な金額がかかります。

開発者は、IEなどで現在行っているように、必要なフォールバックを作成するだけなので、何が問題なのでしょう-おそらく確実に含まれるべきでしょうか?


1
これは質問の正接です。問題は、「ブラウザを使用しない理由と、それについて私ができること」であり、「ブラウザを使用する理由」ではありません。
スティーブンオステルミラー

フレームワークが既に別のサイトからでもブラウザのキャッシュ内に存在する場合、OPはあなたのポイントを熟考しながら、CDNへのトラフィックを減らすことに興味があります。個人的には、フレームワークを参照する一般的な方法がない限り、どのように見えるかわかりません。
closetnoc

ほとんどの人は質問に対する最も関連性のある答えも言うことができませんでした。jQueryはWeb標準ではなく、ブラウザはWeb標準を実行するだけで、ゆっくりと変化し、基本に基づいています。jQueryは元々、ブラウザ間で基本機能が一貫して機能するように作成されたため、jQueryを含めることはブラウザを修正するパッチを含めるようなものですが、ブラウザは最終的にはすでに修正されています。最近、jQueryの使用が減少していることが、「jQueryを必要としない」という多くの記事で部分的に証明されているように見えます。
ロブ

スティーブン。質問は、「ブラウザを使用しない理由と、それについて私ができること」ではありません。それはあなたの再ハッシュです。問題は、なぜそうしないのかということです。尋ねる人は、これを行うだけで、発生する問題に対処するための新しいフレームワークを作成すると、実際にすべてのWebユーザーに大きなメリットがもたらされると明確に述べています。
アンディBbop

時代遅れの先入観を守ることをやめる必要があり、あなたはまだすべてを学ぶことができることを受け入れる必要があります。ああ、実際に何かを読むことも学びます。#兵器。「OPは、あなたの主張を熟考しながら、CDNへのトラフィックを減らすことに関心を持っています」。いいえ、彼はそれがクライアント側であろうとCDNであろうと膨大な量の帯域幅を節約できるとは言いません。effingの投稿を読んでください。
アンディBbop
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.