Hier gibt es einige Probleme. Zunächst die von Ihnen angegebene asynchrone Lademethode:
<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>
hat ein paar Probleme. Skript-Tags unterbrechen das Laden der Seite, während sie abgerufen werden (falls erforderlich). Wenn sie langsam geladen werden, ist dies schlecht, aber jQuery ist klein. Das eigentliche Problem bei der oben beschriebenen Methode besteht darin, dass das Laden von jquery.js für viele Seiten unabhängig erfolgt und das Laden und Rendern beendet wird, bevor jquery geladen wurde, sodass jedes von Ihnen vorgenommene jquery-Styling eine sichtbare Änderung für den Benutzer darstellt .
Der andere Weg ist:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
Probieren Sie einige einfache Beispiele aus, z. B. eine einfache Tabelle, und ändern Sie den Hintergrund der Zellen mit der Methode setOnLoadCallback () gegen $ (document) .ready () mit einer statischen Last von jquery.min.js in gelb. Bei der zweiten Methode tritt kein Flimmern auf. Der erste Wille. Persönlich denke ich, dass dies keine gute Benutzererfahrung ist.
Führen Sie als Beispiel Folgendes aus:
<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>
Sie sollten die Tabelle sehen und dann werden die Zeilen gelb.
Das zweite Problem mit der Methode google.load () besteht darin, dass nur ein begrenzter Bereich von Dateien gehostet wird. Dies ist ein Problem für jquery, da es extrem Plug-In-abhängig ist. Wenn Sie versuchen, ein jquery-Plugin mit einem <script src="...">
Tag einzuschließen, schlägt google.load()
das Plug-in wahrscheinlich mit den Meldungen "jQuery ist nicht definiert" fehl, da es noch nicht geladen wurde. Ich sehe keinen Weg daran vorbei.
Das dritte Problem (bei beiden Methoden) ist, dass es sich um eine externe Last handelt. Angenommen, Sie haben einige Plugins und Ihren eigenen Javascript-Code, müssen Sie mindestens zwei externe Anforderungen zum Laden Ihres Javascript erfüllen. Sie sind wahrscheinlich besser dran, jquery, alle relevanten Plug-Ins und Ihren eigenen Code zu erhalten und ihn in einer minimierten Datei abzulegen.
Von Sollten Sie die Ajax Libraries API von Google für das Hosting verwenden? ::
In Bezug auf die Ladezeiten laden Sie tatsächlich zwei Skripte - das jsapi-Skript und das mootools-Skript (die komprimierte Version von oben). Das sind also eher zwei als eine Verbindung. Nach meiner Erfahrung war die Ladezeit tatsächlich 2-3 Mal langsamer als das Laden von meinem persönlichen freigegebenen Server, obwohl sie von Google stammte, und meine Version der komprimierten Datei war einige K größer als die von Google. Dies auch, nachdem die Datei geladen und (vermutlich) zwischengespeichert wurde. Also für mich, da die Bandbreite nicht viel ausmacht, wird es keine Rolle spielen.
Schließlich haben Sie das potenzielle Problem, dass ein paranoider Browser die Anforderung als eine Art XSS-Versuch kennzeichnet. Dies ist normalerweise kein Problem mit Standardeinstellungen, aber in Unternehmensnetzwerken, in denen der Benutzer möglicherweise nicht die Kontrolle darüber hat, welchen Browser er verwendet, geschweige denn über die Sicherheitseinstellungen, bei denen Sie möglicherweise ein Problem haben.
Am Ende kann ich also nicht wirklich sehen, wie ich die Google AJAX-API für jQuery verwende (die "vollständigeren" APIs sind in gewisser Hinsicht eine andere Geschichte), außer um hier Beispiele zu veröffentlichen.
src
Syntax auf die einfachere / sicherere / schnellere Syntax ändern , die Sie jetzt verwenden? Ihre Antwort ist im Grunde genommen kanonisch geworden und beide Änderungen würden den Menschen helfen, schnell das zu bekommen, wofür sie gekommen sind.