Burada birkaç sorun var. İlk olarak, belirttiğiniz zaman uyumsuz yükleme yöntemi:
<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>
birkaç sorunu var. Komut dosyası etiketleri, alındıklarında sayfa yüklenmesini duraklatır (gerekirse). Şimdi yüklemek için yavaşlarsa bu kötü ama jQuery küçük. Yukarıdaki yöntemle ilgili asıl sorun, jquery.js yükü birçok sayfa için bağımsız olarak gerçekleştiği için, jquery yüklenmeden önce yüklemeyi bitirecek ve oluşturacaklardır, böylece yaptığınız jquery stilleri kullanıcı için görünür bir değişiklik olacaktır .
Diğer yol:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
Basit bir tablo gibi basit örnekleri deneyin ve statik jquery.min.js yükü ile setOnLoadCallback () yöntemine karşı $ (document) .ready () ile hücrelerin arka planını sarı olarak değiştirin. İkinci yöntemin belirgin bir titremesi olmayacaktır. İlk irade. Şahsen bunun iyi bir kullanıcı deneyimi olmadığını düşünüyorum.
Örnek olarak şunu çalıştırın:
<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>
Tablonun göründüğünü görmelisiniz (ve sonra satırlar sararır).
Google.load () yöntemiyle ilgili ikinci sorun, yalnızca sınırlı sayıda dosya barındırmasıdır. Bu jquery için bir sorundur, çünkü son derece eklenti bağımlıdır. Eğer denemek ve bir bir jquery eklentisi eklerseniz <script src="...">
etiketi ve google.load()
eklenti muhtemelen henüz yüklü olmadığı için "jQuery tanımlı değil" nin mesajlarla başarısız olur. Gerçekten bunun için bir yol göremiyorum.
Üçüncü sorun (her iki yöntemde de) bunların bir harici yük olmasıdır. Bazı eklentileriniz ve kendi Javascript kodunuz olduğunu varsayarsak, Javascript'inizi yüklemek için en az iki harici isteğiniz vardır. Muhtemelen jquery, tüm ilgili eklentileri ve kendi kodunuzu alıp tek bir küçültülmüş dosyaya koymanız daha iyi.
Gönderen Hosting için Meli sen kullan Google'ın Ajax Kütüphaneleri API? :
Yükleme sürelerine gelince, aslında iki komut dosyası yüklüyorsunuz - jsapi komut dosyası ve mootools komut dosyası (yukarıdan sıkıştırılmış sürüm). Yani bu bir değil iki bağlantı. Deneyimlerime göre, Google'dan geliyor olsa bile, yükleme süresinin kendi kişisel paylaşılan sunucumdan yüklemekten 2-3 kat daha yavaş olduğunu ve sıkıştırılmış dosyanın sürümümün Google'dan birkaç K daha büyük olduğunu buldum. Bu, dosya yüklendikten ve (muhtemelen) önbelleğe alındıktan sonra bile. Bu yüzden benim için, bant genişliği fazla önemli olmadığından önemli olmayacak.
Son olarak, isteği bir çeşit XSS girişimi olarak işaretleyen paranoyak bir tarayıcıda potansiyel probleminiz var. Bu genellikle varsayılan ayarlarla ilgili bir sorun değildir, ancak kullanıcının güvenlik ayarlarını tek başına kullandıkları tarayıcı üzerinde kontrol sahibi olamayacağı kurumsal ağlarda sorun yaşayabilirsiniz.
Sonuçta beni jQuery için Google AJAX API'sını kullandığımı gerçekten göremiyorum (daha "eksiksiz" API'ler bazı açılardan farklı bir hikaye) ve burada örnek göndermek dışında.
src
şu anda kullandığınız daha basit / daha güvenli / daha hızlı sözdizimini değiştirmenizi önerebilir miyim ? Cevabınız temel olarak kanonik hale geldi ve her iki değişiklik de insanların geldiklerini çabucak elde etmelerine yardımcı olacak.