Varför ska man använda jQuery från Google?


I mitt inlägg om automatiska ikoner på länkar med jQuery kom frågan i kommentarerna, varför man ska implementera JavaScript-biblioteket jQuery från Google AJAX Library och inte ha JavaScript-filerna på sin egen server?

Google AJAX Library är ett bibliotek i form av ett Content Delivery Network som hostar JavaScript-källfilerna för jQuery, jQuery UI, Prototype, script.aculo.us, MooTools, Dojo, SWFObject, Yahoo! User Interface Library (YUI) och Ext Core på sina servrar.

Fördelar med Google AJAX Library

  • Google AJAX Library är ett Content Delivery Network har de servrar på flera olika fysiska platser. När din besökare efterfrågar filen i fråga hämtas den från närmaste tillgängliga server för besökaren vilket gör att de i många fall laddar ner filen snabbare än om de skulle ladda filen från din lokala server.
  • Webbläsare begränsar ofta antal HTTP-förfrågningar till en webbplats, i vissa fall betyder det att endast två filer laddas ner simultant från samma värdnamn. Genom att ladda in JavaScript-filen från ett annat värdnamn betyder det att fler filer kan laddas ner samtidigt.
  • Även om du har besökt fler webbplatser med samma version av jQuery installerat kommer besökarens webbläsare behöva ladda ner filen igen första gången han besöker din webbplats. Men har du besökt en annan webbplats som använder jQuery från Google kommer inte filen i de flesta fall inte behöva laddas ner igen, den är redan cachad. Google säger även till din webbläsare automatiskt att spara filen i upp till 1 år.

Nackdelar med Google AJAX Library

  • Även solen har sina fläckar och Google skulle kunna drabbas av nertid, vilket skulle kunna göra att JavaScript-funktionalitet på din webbplats inte fungerar. Men gör man webbplatser utifrån devisen Graceful Degradation ska detta inte betyda någon katastrof.

Implementera jQuery från Google AJAX Library

Hur implementerar man då jQuery från Google AJAX Library? Här är den enklaste lösningen:
[sourcecode language=’html’]

[/sourcecode]

Det andra alternativet är att använda google.load(), som enligt Google bäst prestanda. Problemet är dock att själva JavaScriptet tar onödigt mycket tid för att exekuteras och man måste använda setOnLoadCallback() istället för $(document).ready().
[sourcecode language=’javascript’]


[/sourcecode]

Mer information om att hämta JavaScript-filer från Google AJAX Library finns på bloggen Encosia.