場することが含まれていますのjQueryライブラリ。Google JSAPI?CDN?
-
23-08-2019 - |
質問
あしながら、その方法を含jQuery、jQuery UIさんは何人ですか?
- Google JSAPI
- jQueryのサイト
- ご自分のサイト/サーバー
- 他のCDN
最近は、Google JSAPIが、それが機能することに時間を設定するSSL接続でのみ解決google.com.を使用している以下のGoogle:
<script src="https://www.google.com/jsapi"></script>
<script>
google.load('jquery', '1.3.1');
</script>
できればおもしろいと思いますので、キャッシュが他のサイトおよび保存帯域からの当社のサーバかけての部分を変更する場合がございのが含まれています。
何をしているのでしょうか?持っていらっしゃいます。
編集: たjQueryのサイト及びその利用方法:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
Edit2: こちらはうってどのjQuery問題なく、昨年
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
の差の除去 http:
.を取り除き、必要な心配を切り替えはhttpおよびhttps.
解決
なってJQueryによるGoogle APIサーバーなかったのjsapi方法からないレバレッジのその他のGoogleのAPIした場合も変更していく考え...
初: Googleのapiサーバーを配布し世界中でっサーバーの所在地に近いサーバー通常は速い応答時間の場合がございます。
第二: 多くの人に選択してJQuery主催のGoogleなどがあった場合、また、お客様が私のサイトにもあては、JQueryのスクリプトの実地調査します。事前キャッシュされたコンテンツは高速負荷時の場合がございます。
三: 私のウェブホスティング会社に料金をもらった帯域を使用します。な消費18kユーザのセッションの場合はお客様に同じファイルです。
私は理解していた部分の信託のGoogleとの正しいスクリプトファイルを、オンラインで可能です。ここまでなんと残念です、今後もこの構成までのことは、あってはならないことです。
一つのことを指... が混在する場合の安心-安全でないページに貴社のサイトにするために動的に変更するGoogle源の警告を見込む場合に不安定なコンテンツセキュアのページ:
ここにうございました:
<script type="text/javascript">
document.write([
"\<script src='",
("https:" == document.location.protocol) ? "https://" : "http://",
"ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>"
].join(''));
</script>
更新9/8/2010 - 一部の提案を軽減するためには、複雑さのコードを取り除き、HTTPやHTTPSでの使用の構文は次のとおりです:
<script type="text/javascript">
document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>");
</script>
また、が変更される可能性もあるurlを反映し、jQueryの主要な数にしたい場合は、必ず最新のバージョンのjQuery図書館のた:
<script type="text/javascript">
document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'>\<\/script>");
</script>
最後に、かない場合には利用したいGoogleい。jQueryを使用できる以下のようにソースパスを意jQuery対応しておりませんSSL接続):
<script type="text/javascript">
document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
</script>
他のヒント
あなたは、外部のサーバ上でホストすることがあります一つの理由は、特定のサーバーへの接続concurentのブラウザの制限を回避することです。
しかし、jQueryのは、使用しているファイルのことを与えられた可能性がブラウザのキャッシュがで蹴ると、ほとんどの部分は、その点は議論の余地でしょう、非常に頻繁に変更されません。
外部サーバ上でホストする第2の理由は、あなた自身のサーバーへのトラフィックを下げることである。
しかし、jQueryのの大きさを考えると、チャンスはそれはあなたのトラフィックのごく一部となります。あなたはおそらく、あなたの実際のコンテンツを最適化しようとする必要があります。
のjQuery 1.3.1分のみ18Kのサイズです。私はそれが最初のページのロードに依頼するヒットのあまりないと思います。これは、その後キャッシュされます。その結果、私はそれを自分自身をホストます。
、直接リンクは、より応答することができます。各ライブラリは直接ファイルにリストされているパスを持っています。これは、jQueryのパスです。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
ちょうどあなたの質問を読み直し、あなたがhttpsを使用している理由は?これは、彼らの例では、スクリプトタグ、Googleのリストです。
<script src="http://www.google.com/jsapi"></script>
私は、任意の外部サイトに依存するように開発された任意のパブリックサイトを望んでいないだろうし、したがって、私はjQueryの自分自身をホストと思います。
その他(グーグル、jquery.comなど)がダウンしたとき、あなたのサイト上で停止していることを喜んでいますか?以下の依存関係が鍵となります。
メリット:ホストがGoogleの利用
- しょうが速そのサーバーにより最適化)
- を取り扱っているキャッシュが正しく-1年までに苦労するさの変動をヘッダを右に当社のサーバー)
- ユーザをもつリンクのGoogleバージョン別ドメインをさせていたファイルにキャッシュ
連結:
- 一部のブラウザとしてもおかしくはないが、クロスサイト-スクリプティングクロスドメインを許可し、ファイルです。
- 特に、ユーザーのNoScriptプラグインのためのFirefox
られるそうですから、Google、トレージエンジンはインデックスを実現させるグローバル変数、またはsomesuchればな負荷からサーバー?
ここではいくつかの問題があります。まず、非同期ロード・メソッドは、指定します:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.3.1');
google.setOnLoadCallback(function() {
// do stuff
});
</script>
問題のカップルを持っています。 (必要な場合)、彼らが取得している間にスクリプトタグは、ページの読み込みを一時停止します。彼らはこれをロードするために遅いなら今悪いですが、jQueryのは小さいです。上記の方法での本当の問題はjquery.js負荷は多くのページのために独立して行われるため、彼らは読み込みが終了しますとjQueryを使用すると、ユーザーのための目に見える変化となりますスタイリングので、任意のjQueryをロードする前にレンダリングすることです強い>。
他の方法があります:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
、のようないくつかの簡単な例を試してみて簡単なテーブルを持っており、静的jquery.min.js負荷の$(ドキュメント).ready()対setOnLoadCallback()メソッドで黄色にセルの背景を変更します。第二の方法は、目立っちらつきを持っていません。最初の意志。個人的に私はそれが優れたユーザーエクスペリエンスではないと思います。
の例としては、これを実行します:
<html>
<head>
<title>Layout</title>
<style type="text/css">
.odd { background-color: yellow; }
</style>
</head>
<body>
<table>
<tr><th>One</th><th>Two</th></tr>
<tr><td>Three</td><td>Four</td></tr>
<tr><td>Five</td><td>Six</td></tr>
<tr><td>Seven</td><td>Nine</td></tr>
<tr><td>Nine</td><td>Ten</td></tr>
</table>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.1");
google.setOnLoadCallback(function() {
$(function() {
$("tr:odd").addClass("odd");
});
});
</script>
</body>
</html>
あなたが表示されるテーブルを参照してください(必要がある)と、その後の行が黄色行きます。
google.load()メソッドに関する第2の問題は、それがファイルのみの限られた範囲をホストすることです。これは非常にプラグインされているので依存jqueryのための問題です。あなたがしようと<script src="...">
タグをjQueryプラグインが含まれており、google.load()
場合は、プラグインは、おそらくそれがまだロードされていないため、「jQueryの定義されていません」のメッセージで失敗します。私は本当にこの回避する方法が表示されません。
第三の問題は、それらが一つの外部負荷であることです。あなたがあなたのJavascriptをロードするための2つの外部要求の最小までだいくつかのプラグインや、独自のJavaScriptコードを持っていると仮定。おそらく、jqueryの、関連するすべてのプラグインや独自のコードを取得し、1つの縮小さのファイルにそれを置く方がいいでしょう。
あなたはホスティングのために、GoogleのAjaxのライブラリのAPIを使用する必要がありますするから:?
回をロードすると、、あなたが実際にしています JSAPIスクリプト - 2つのスクリプトを読み込みます そして、MooToolsのスクリプト( 上記からの圧縮バージョン)。そう それは2つの接続ではなく、 1。私の経験では、私がいることを発見しました ロード時間は、実際には2〜3倍でした 私自身からのロードより遅いです でもそれかかわらず個人の共有サーバー、 グーグル、そして私のバージョンから来ていました 圧縮ファイルののカップルでした Googleのより大きいK。でもこれ、 ファイルがロードされた後と (おそらく)キャッシュされました。以来、私のためにそう 帯域幅は、あまり重要ではありません。 問題にするつもりはないされます。
最後に、あなたはXSSの試みのいくつかの並べ替えとして要求フラグを立てる偏執ブラウザの潜在的な問題を抱えています。それは、典型的には、デフォルトの設定に問題はありませんが、ユーザーは、彼らが使用しているブラウザを介して制御おろかセキュリティ設定を持っていない可能性がどこの企業ネットワークで、あなたに問題がある可能性があります。
最後に、私は本当にここの例を投稿する以外に多くの(より「完全な」APIはいくつかの点で別の話です)、少なくともjQueryのためのGoogleのAJAX APIを使用して私を見ることができないようにします。
自分のサーバー上でホストするアドバイスの人々に加えて、私は、ブラウザが他のコンテンツのスレッドとは別にロードできるようにする(例えばstatic.website.com)別のドメインでそれを維持するために提案したのです。このチップはまた、すべての静的なもののために働く、画像やCSSを言います。
私は投票する-1 Googleでホストされているライブラリを持っています。彼らは、これらのライブラリの周りに彼らのラッパーで、データ、Google Analyticsのスタイルを集めています。最低でも、私は、ページ上の他のあまり何もすることを求めている以上のことをやって、クライアントのブラウザを望んでいません。悪いことでは、これが悪されていないGoogleの「新バージョン」である - 。より多くの利用状況データを収集するために控えめなJavaScriptを使用して
注:彼らはこのような行為を変更した場合は、スーパー。しかし、私は彼らのホストされているライブラリを使用して考えられて最後の時間は、私は自分のサイト上でのアウトバウンドHTTPトラフィックを監視し、Googleのサーバーに出て定期的に呼び出しは、私が見ることが予想ものではありませんでした。
私はこれについて古い学校かもしれませんが、私はまだホットリンクに難色を示します。たぶんGoogleは例外であるが、一般的に、それは本当にあなた自身のサーバー上のファイルをホストするために、ちょうど良いマナーです。
私はローカルでこれらのファイルをホストする理由として、これを追加します。
最近TWCに南カリフォルニアのノードがだけなので、我々は外部ファイルを取得されていません(IPv4の持つユーザーのための)ajax.googleapis.comドメインを解決することができませんでした。それは間欠的だったので、これは私がSaaSのユーザーの問題のトラブルシューティング問題のトンを持っていた、(今は永続的である。)昨日まで間欠されています。一部のユーザーは、ソフトウェアでは問題がないし、他の人が暴落た理由を追跡しようとしている数え切れないほどの時間を過ごしました。いつものデバッグプロセスでは、私は、彼らがIPv6をオフにした場合、ユーザーに尋ねるのが習慣ではありませんよ。
私自身は、ファイルに、この特定の「ルート」を使用していたともIPv4のみを使用していますので、私は問題につまずきました。私は、本当の問題を見つけるために...その後のtracerouteなどを始め、jqueryのは、ロードされなかった私に言って、開発者ツールで問題を発見しました。
この後、私が最も可能性が高いので、外部でホストされたファイルをするために戻って行くことはありません:Googleはこれが問題になることのためにダウンする必要はありません、と...これらのノードのいずれか1つがDNSハイジャックで妥協することができ、悪質なJSの代わりに、実際のファイルを提供します。常に今私は、ユーザとホスト間の任意のノードに障害が発生ポイントになることを知って、私はGoogleのドメインが下がることはないという点で、安全だと思っています。
私は、jQueryのサイトから最新バージョンが含まれています。 jquery.com/jquery-latest.pack.jsそれは私のニーズに合ったし、私が更新を心配する必要はありません
します。EDIT:主要なWebアプリの場合は、確かにそれを制御します。それをダウンロードし、それを自分に仕えます。しかし、私の個人的なサイトのために、私はあまり気にしませんでした。魔法のように消えていない物事は、彼らは通常、最初に推奨されていません。私は、将来のリリースで変更するかを知るために十分な、それに追いつくます。
ここではいくつかの有用な資源、希望はあなたがあなたのCDNを選んだのに役立ちます。 配信図書館が彼らのCDNの谷のためのMSは最近、新しいドメインを追加しています。
旧フォーマット: http://ajax.microsoft.com/ajax /jQuery/jquery-1.5.1.jsする 新フォーマット: http://ajax.aspnetcdn.com/ajax/jQuery/ jqueryの - 1.5.1.jsする
これは、microsoft.comのために、すべてのクッキーを送るべきではありません。 http://www.asp.net/ajaxlibrary/cdn.ashx#Using_jQuery_from_the_CDN_11する
すべての技術間で、ウェブ上で使用される最も人気のある技術についてここではいくつかの統計情報を表示します。 http://trends.builtwith.com/する
希望は、あなたが選択することができます。
私はより良い起こっているすべてのものを意識します 上との の私のサイトへ。そのために私は自分自身のいずれかの同じサーバまたは静的/外部サーバが、いずれかの方法で確認した後、I(または私のプログラム/プロキシが)ライブラリを更新することができる唯一の場所に/すべての変更をテストしjqueryの分版ホストP>
ヘッドにおいてます:
(function() {
var jsapi = document.createElement('script'); jsapi.type = 'text/javascript'; jsapi.async = true;
jsapi.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.google.com/jsapi?key=YOUR KEY';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('head')[0]).appendChild(jsapi);
})();
本体の端ます:
<script type="text/javascript">
google.load("jquery", "version");
</script>
私は自分のサーバー上のJS私の他のファイルとそれをホストする、そして、それは、それらを結合し、縮小化、その点だ(ここでは、ジャンゴ・compresserで、それがポイントではありません)で、ただ一つのjsファイルを務めなければすべてのサイトのニーズはそれに入れ。あなたはとにかく自分自身のjsファイルを提供する必要がありますので、私はあまりにもそこに余分なjqueryのバイトを追加しないする理由を見ていない - いくつかのより多くのKBSがなされるべきより多くの要求よりも、転送することがはるかに安価です。あなたは誰にも依存していない、とあなた縮小さjsファイルがキャッシュされるとすぐに、あなたにも超高速です。
あなたがあなた自身のサーバーから追加jqueryのキロバイトをロードする(ただし、追加の要求なし)しなければならないため、最初のロードでは、CDNベースのソリューションは、勝つ可能性があります。私は違いはしかし、顕著である疑い。そして、クリアキャッシュを持つ最初のロードに、あなた自身のホスト型ソリューションは、おそらく常にためにCDNのjqueryのをフェッチするために、必要に応じてより多くの要求(とDNSルックアップ)の、はるかに高速になります。
私は、この点はほとんど言及されることはありませんか疑問に思う、とどのようにのCDNは世界:)
を引き継ぐように見えます