ここにはいくつかの問題があります。まず、指定した非同期読み込みメソッド:
<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のスタイルがユーザーに表示される変更になることです。
もう1つの方法は次のとおりです。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
簡単な例を試してみてください。単純なテーブルを用意し、setOnLoadCallback()メソッドと$(document).ready()を静的jquery.min.jsでロードして、セルの背景を黄色に変更します。2番目の方法では、ちらつきは目立ちません。最初の意志。個人的には、これは良いユーザーエクスペリエンスとは言えません。
例としてこれを実行します:
<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が定義されていません」というメッセージで失敗します。私はこれを回避する方法を本当に見ていません。
3番目の問題(どちらの方法でも)は、それらが1つの外部負荷であることです。いくつかのプラグインと独自のJavascriptコードがあるとすると、Javascriptをロードするための最低2つの外部要求があります。おそらく、jquery、関連するすべてのプラグイン、および独自のコードを取得し、それを1つの縮小ファイルに入れる方が良いでしょう。
以下からのホスティングのためのはずです使用GoogleのAjaxのライブラリのAPI?:
ロード時間に関しては、実際には2つのスクリプト(jsapiスクリプトとmootoolsスクリプト(上記の圧縮バージョン))をロードしています。つまり、1つではなく2つの接続になります。私の経験では、それがGoogleからのものであったとしても、ロード時間は実際に自分の個人共有サーバーからロードするよりも2〜3倍遅く、圧縮ファイルのバージョンはGoogleよりも数K大きかったことがわかりました。これは、ファイルがロードされ、(おそらく)キャッシュされた後でもです。つまり、帯域幅はそれほど重要ではないので、私にとっては重要ではありません。
最後に、ある種のXSS試行として要求にフラグを立てる偏執狂的なブラウザーの潜在的な問題があります。通常、これはデフォルト設定の問題ではありませんが、企業ネットワークでは、セキュリティ設定はもちろん、ユーザーが使用するブラウザを制御できない可能性があるため、問題が発生する可能性があります。
したがって、結局のところ、私がjQueryにGoogle AJAX APIを使用しているのを実際に見ることはできません(より「完全な」APIは、いくつかの点で別の話です)。
src
現在使用しているより単純/安全/高速な構文に変更することをお勧めしますか?あなたの答えは基本的に標準的なものになり、両方の変更は人々が彼らが求めていたものを素早く得るのを助けるでしょう。