Artikel-Schlagworte: „jquery“

jQuery is fun :)

Mittwoch, 30. September 2009

Sliding Header Animation with jQuery There are probably a dozen pre-made image gallery plugins for jQuery that do the same thing, or could be hacked to do so… but actually I wanted to see how hard it is to code a scrolling header animation similar to the one i found on www.freshtilledsoil.com.
So here’s my own approach for the same thing: See the Demo here. Instead of writing proper plugins for jQuery, I actually got used to writing global Javascript functions. Although these may or may not use jQuery functionality themselves and mostly do project-specific stuff - it’s not really reusable in the next project. So hacking together a jQuery plugin would be mandatory. That said, this is the result of that practice. Easy.

So what this does is: First, it requires you to set up a list with images and another div with links (the controls). have a wrapper div surround this. When clicking on a ‘pager’ link, it will then slide the whole list in its parent div.

3 Gründe warum ich jQuery von Google benutze

Sonntag, 19. April 2009

Dies ist im Grunde nichts weiter als eine Übersetzung einiger bekannter Argumente für die Nutzung der bei Google bereitgestellten Javascript-Bibliotheken. Mir ist einfach aufgefallen dass es keinen deutschsprachigen Artikel in den Suchergebnissen zum Thema gab.

Ich bin eigentlich eher skeptisch, wenn es darum geht Daten auszulagern, die man für seine Webseite benötigt. Das Paradebeispiel Flickr hat meine Bedenken vor ein paar Jahren sehr anschaulich gemacht: zahlende Benutzer der Plattform fanden Ihre Bilder plötzlich von einem undurchsichtigen Filtermechanismus gesperrt. Die Bilder waren de facto nicht mehr öffentlich. Der Zorn war groß, doch einer kleinen Minderheit, die Ihre Fotos stattdessen in einem eigenen Photoblog selbst veröffentlichten, entlockte diese neue web 2.0- und AGB-Problematik nur ein zaghaftes schmunzeln.

Worum gehts?

Wer eine Webseite umsetzt und dabei auch noch Wert auf Usability oder einfache Effekte legt, kommt in der Regel in die Versuchung eine der populären Javascript-Bibliotheken wie Prototype, Scriptaculous, Moo-Tools oder jQuery einzusetzen. Diese erleichtern die Arbeit und machen auch nicht-Javascriptern Spaß. Was tut man also? Man speichert die entsprechenden Dateien in einen Ordner auf dem Webspace und bindet sie so oder so ähnlich ein:

  1. <script
  2. src="/js/jQuery.min.js"
  3. type="text/javascript"
  4. ></script>

Und genau so macht man es falsch.

Stattdessen sollte man die Google AJAX Libraries oder andere Alternativen verwenden. Und da entstand auch die nicht ganz neue Idee Ressourcen einzusparen, indem man diese häufig verwendeten Dateien nicht jedesmal neu auf einen anderen Webserver lädt, sondern stattdessen auf eine unikate URL verweist. Das hat mindestens 3 Vorteile:

  1. <script
  2. src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
  3. type="text/javascript"
  4. ></script>
  1. Schnellere Ladezeit durch parallele Verbindungen:
    Heutige Browser begrenzen das gleichzeitige Herunterladen von Dateien die auf ein und der selben Domain liegen. Manche Browser können maximal 2 Dateien parallel laden. Das dient zum Schutz der Server, bedeutet aber auch dass moderne Webseiten, die in der Regel viele CSS Dateien, Javaskripte, Bilder, etc. nutzen nur sequentiell, also der Reihe nach ihre Daten an den Browser senden können, selbst wenn der Webserver die nötige Power hätte.
    Darum ist es geschickt (vor allem statische Dokumente wie Bilder, CSS, JS, etc.) auf eine oder gar mehrere Subdomains oder reine Datenserver auszulagern. Der Effekt ist spürbar (und das obwohl natürlich jede Domain einmal über einen DNS aufgelöst werden muss): statt auf die ersten beiden Ressourcen zu warten kann der Browser nun parallel Daten von allen verwendeten Domains und Subdomains laden.
  2. Schnellere Auslieferung Dank der Server-Infrastruktur
    Der sogenannte "Otto Normal"-Webseitenschreiber dürfte in der Regel keine Serverfarmen mit weltweit verteilten Rechenzentren sein eigen nennen. Das heißt: egal von welchem noch so entfernten Land ein Besucher kommt, er muss unsere Webseite immer von dem Server laden, auf dem wir diese hosten. Nicht so wenn man sich Amazons Cloudfront (die jQuery Webseite nutzt z.B. selbst diesen Service), oder eben den bei Google gehosteten AJAX-Bibliotheken bedient. Immerhin ein Teil der Daten kann dem Besucher dann aus nächster Nähe geschickt werden. Beide Dienstleister machen das automatisch - und beiden kann man die Erfahrung die sie damit haben nicht absprechen.
  3. Optimiertes Caching
    Je mehr Webseiten dies so tun, umso wahrscheinlicher ist es auch, dass die jQuery-Bibliothek bereits im Browsercache eines Besuchers liegt und die Datei gar nicht erst geladen werden muss. Genau wie CSS-Dateien werden nämlich auch Javaskripte gecached. Eine eindeutige, unikate URL zum Javaskript teilt dem Browser also mit, dass jQuery benötigt wird. Dieser hat die Datei aber bereits auf einer zuvor besuchten Webseite geladen und kann so direkt auf die gecachte Datei zurückgreifen.

Mein Fazit:

Die Idee ist nicht neu. Cachefiles.net hat es vor etwa 2 Jahren vorgemacht. Google macht es effektiver und zahlt die Kosten aus der Portokasse. Inzwischen wird das ganze sogar gzip-komprimiert und mit Expires-Headern ausgeliefert, was das Ganze für mich jetzt erst wirklich brauchbar macht.
Ein minimales Restrisiko bleibt: Zum einen besteht die Gefahr, dass Google tatsächlich mal down ist. Zum anderen erlaubt Javaskript so ziemlich alles im Browser des Besuchers bzw. in der Webseite in der es eingebunden ist. Man sollte also zumindest in kritischen Bereichen wo mit vertraulichen Informationen gearbeitet wird, wie z.B. einem Administrationsbereich generell auf externe Javaskripte verzichten.
Natürlich, natürlich… um Angst vor einem bei Google gehosteten jQuery haben zu müssen, muss Google ersteinmal über Nacht extremst böse werden oder jemand all ihre Server hacken - was ich für absolut unrealistisch halte… aber hey, ich will auch nicht Schuld sein, wenns jemand übertreibt oder unachtsam ist.

jQuery Offline-Referenz im CHM-Format

Montag, 16. Februar 2009

Es gibt die jQuery- und auch die jQuery UI-Befehlsreferenzen in einer Offline-Fassung. Das ganze liegt im Windows-Hilfedateiformat (.chm) vor, wie man es von vielen Desktopanwendungen her kennt (oder wie es das z.B. auch für PHP gibt). Ich nutze das hauptsächlich um mir die genaue Parameter-Syntax einer Funktion herauszusuchen - und genau dafür ist die Suche im Index perfekt geeignet. Ein, zwei Zeichen Tippen, Enter und da hat mans.

Erfreulich ist auch dass die .chm Dateien super pünktlich mit neuen jQuery-Versionen aktualisiert werden. Da die Dateien 1 zu 1 aus der Online-Dokumentation generiert werden, wundert es nicht weiter dass selbst lauffähige Beispiele mit dabei sind. Bei wem sich die .chm-Datei nicht auf anhieb mit einem Doppelklick öffnen läßt, dem sei eine Firefox-Erweiterung namens CHM Reader empfohlen.

Wer, sozusagen als i-Tüpfelchen, jetzt noch die Firefox Tastenkombination für die CHM-Reader Sidebar anpasst, der kommt zehnmal schneller zum Ergebnis als wenn er erst auf die jQuery Seite geht und dort zu suchen beginnt… Nagut, sicher ne Übungs- und Geschmackssache…

Downloaden kann man die Datei(en) hier: jQuery documentation (CHM) bei charupload