blogeum
 

Archiv für den Tag ‘linktipp’

10 Tipps zu jQuery

Durch Peter Kröner bin ich auf eine interessante Präsentation von Paul Irish gestoßen. In der Präsentation weist Paul auf 10 Dinge hin, die ihm beim Durchlesen der jQuery-Source aufgefallen sind.

Ich kann jedem Interessierten nur empfehlen sich das Video anzuschauen.

Im Folgenden möchte ich auf ein paar Dinge hinweisen, die ich auch noch nicht kannte und die mir speziell aufgefallen sind:

Selbstaufrufende Funktionsdefinition

(function myfunc(param) {

    // Funktionsrumpf hier einfügen

})(myvar);

In obigem Code wird eine (anonyme) Funktion namens myfunc(param) erstellt, die direkt im Anschluss mit dem Parameter myvar aufgerufen wird.

Zeitgesteuerte Wiederholungen

Wenn man ein Ereignis oder eine Funktion nach einer bestimmten Zeitspanne immer wieder wiederholen will, gibt es in JavaScript die Methode setInterval(func, delay). Nachteilig ist aber, dass die Funktion funcimmer nach der Ablauf der Zeitspanne delay aufgerufen wird, egal ob func längere Zeit zur Ausführung benötigt als delay. So kann es zum „Stau“ kommen.

setInterval(function() {
    myfunc();
}, 100);

Wenn myfunc() im Beispiel länger als 100 Millisekunden zur Ausführung benötigt, wird trotzdem nach 100 Millisekunden myfunc() erneut aufgerufen, usw. Doch mit der eben definierten selbstaufrufenden Funktionsdefinition kann man dem entgegenwirken:

(function myloop() {

    myfunc();
    setTimeout(myloop, 100);

})();

myfunc() wird nun erst vollständig abgearbeitet und erst dann nach einer Wartezeit von 100 Millisekunden wird myloop() und damit myfunc() erneut aufgerufen.
Einen Nachteil hat die Lösung aber trotzdem in meinen Augen: myloop() wird rekursiv aufgerufen und erzeugt dadurch natürlich einen Overhead der bei häufiger periodischer Ausführung nicht zu unterschätzen ist.

Elementfilter

In jQuery lassen sich relativ einfach alle Elemente eines bestimmten Typs finden. $(':password') findet beispielsweise alle Passwortfelder. Doch diese Methode ist sehr langsam, weil per Definition alle Elemente innerhalb des DOM durchgegangen werden und geprüft wird, ob die Elemente vom Typ password sind (also quasi $('*:password')).
Beschleunigen lässt sich das ganze, indem man ein wenig spezifischer wird. Den Typ password können nur Input-Felder haben. Also ist es sinnvoll, die Auswahl ein wenig einzuschränken. $('input:password') sucht nur nach Input-Felder vom Typ password, was wesentlich schneller ist.

Das Gleiche gilt auch für die Filter text, radio, checkbox, file, password, submit, image, reset und button.

JSON-Parsing

JavaScipt Object Notation ist ein einfaches Datenaustauschformat auf der Basis von anonymen JavaScript-Objekten. In JavaScript kann man so ein JSON-Objekt theoretisch einfach über eval() auswerten. Aber wie die sicherheitsbewussten unter euch wissen, ist eval() evil!
jQuery nutzt deshalb nativ die browsereigenen JSON-Parsing-Methoden. Für den Fall, dass diese nicht existieren (bspw. in älteren Browsern), haben sich die jQuery-Entwickler eine andere trickreiche Implementierung überlegt, ohne auf eval() zurückgreifen zu müssen:

var x = (new Function('return ' + jsonobj))()

Es wird schlicht ein neues Funktionsobjekt erzeugt, welches dann das JSON-Objekt zurückgibt. Auf diese Weise haben wir auch JSON geparsed, aber ohne Sicherheitsbedenken. Denn im Gegensatz zu eval() darf das Funktionsobjekt nur auf seinen eigenen Namensraum und Gültigkeitsbereich zugreifen und nicht auf den globalen. Daher kann es nicht zum Überschreiben von Variablen, Objekten, usw. kommen. (siehe Kommentare) Trickreich, stimmt’s?

jQuery-Performance

Abschließend möchte ich auch noch auf einen Vortrag von Paul Irish zum Thema „jQuery Anti-Patterns for Performance & Compression“ hinweisen, der einiges noch einmal aufgreift und vertieft. Für jeden jQuery-Entwickler ein Muss!

Webseiten-Ladezeiten reduzieren

In einem Gastbeitrag bei Peter Kröner informiert Christian Schaefer, wie man die Ladezeiten einer Website ohne großen Aufwand drücken kann, um die Besucher nicht durch lange Ladezeiten zu vergraulen und einen guten Eindruck zu hinterlassen.
Schließlich zählt die Ladezeit mit zu den Erfolgsfaktoren einer Website und wird zukünftig auch in das Ranking bei den Google-Suchergebnissen eingehen.

Am Ende des Artikels stellt er noch seine PHP5-Bibliothek CSS-JS-Booster vor, die einem die Arbeit bei einigen der vorgestellten Tipps abnimmt und automatisch kombiniert.

Alles in allem ein lesenswerter Artikel und einige sinnvolle Tipps, die einfach umzusetzen sind!

Fachbücher kostenfrei lesen

Der Dienst PaperC ermöglicht das kostenfreie Lesen von derzeit knapp 2900 Fachbüchern aus den unterschiedlichsten Bereichen. Dafür konnte der Anbieter über 25 namhafte Verlage wie O'Reilly, Addison-Wesley und Pearson als auch den deutschen Markt+Technik Verlag gewinnen. Demnach sind viele englisch- und deutschsprachige Bücher zu haben.
Nach der Anmeldung kann man die Bücher dann kostenlos über eine Web-Oberfläche lesen. Über eine Suchfunktion kann man Bücher nach verschiedenen Kriterien suchen (ISBN, Autor, Titel, etc.).

PaperC

Im Rahmen der kostenfreien Nutzung kann (und darf) man die Bücher jedoch nicht abspeichern sondern nur online lesen. Wenn man Gefallen gefunden hat, kann man das Buch direkt bei Amazon kaufen oder als PDF herunterladen, Texte kopieren, ausdrucken und eigene Anmerkungen erstellen. Hierfür verlangt PaperC 0,10 € pro PDF-Seite. Das Erstellen von Screenshots ist gemäß den AGB ausdrücklich verboten.

Gerade für die ewig klammen Studenten ein echter Spartipp, weil Fachbücher meist relativ kostspielig sind.

[via Bjoerns Windows Blog]

Haskell ganz einfach

Ein Leidensgenosse im Fach Informatik hat mich auf ein sehr witziges und einfaches Handbuch zur funktionalen ProgrammierspracheHaskell aufmerksam gemacht.
Learn You a Haskell for Great Good! beschreibt sehr einfach und anschaulich die Programmiersprache Haskell und zeigt, was man alles damit machen kann. Bereichert wird das Ganze durch witzige Illustrationen, die vom Autor, Miran Lipovača aus Slowenien, selbst gezeichnet wurden.

Learn You a Haskell for Great Good!

Für alle Haskell-Geplagten ein wirklich sehr schönes und einfaches Tutorial.

Danke an Ulli für den Tipp.

10 englische Wörter, die man richtig schreiben sollte

10 Words You Need to Stop Misspelling

Matthew Inman (alias The Oatmeal) weist auf 10 englische Vokabeln hin, die häufig falsch geschrieben werden und gibt teils amüsante Tipps, wie man sich die richtige Schreibweise einfach merken kann.

Für alle, die gerne mal ein paar Wörter falsch schreiben, ein heißer Tipp.

Was’n das?

blogeum ist das persönliche Weblog von Christian Gürtler – seines Zeichens begeisterter Webworker und Programmierer. Er studiert gegenwärtig Angewandte Informatik an der TU Chemnitz.

 

Abonnieren

RSS-IconImmer auf dem Laufenden mit den Einträgen aus dem Weblog als Atom-Feed. Nunmehr 72 Abonnenten!

Folge mir auf Twitter

 

Neue Kommentare

Christian: Hallo, interessante Funktion. Ich denke ich werde das Beispiel für JavaScript…

Tobias Neumann: Hallo, interessante Funktion. Ich denke ich werde das Beispiel für JavaScript…

Christian: OK, den Zugriff auf "superglobale" Objekte wie window habe ich nicht bedacht.…

ChrisB: Auf diese Weise haben wir auch JSON geparsed, aber ohne Sicherheitsbedenken.…

Martha: Das wundert mich auch. Rot ist doch eine Warnfarbe. Ich kann mir das auch nur…

 

Neue Einträge

 

Lesenswert

Werbung

Wikio - Top Blog - High-tech

 

© 2009–2010 Christian Gürtler

Die Blog-Inhalte stehen unter einer Creative Commons-Lizenz.

XHTML · CSS

BlogPingR.de - Blog Ping-Dienst, Blogmonitor Blogverzeichnis - Blog Verzeichnis bloggerei.de