Bücher online kostenlos Kostenlos Online Lesen
JQuery Kochbuch (German Edition)

JQuery Kochbuch (German Edition)

Titel: JQuery Kochbuch (German Edition) Kostenlos Bücher Online Lesen
Autoren: jQuery Community Experts
Vom Netzwerk:
neue Anweisung mit einem Semikolon, um Minimierungs- und Komprimierungsprobleme zu vermeiden.
    Die Kurzform
$
kann beim Schreiben von JavaScript-Code ausgesprochen nützlich sein. Die Größe des Codes wird reduziert, das Design verbessert und zudem erfreut sich diese Verwendung wachsender Beliebtheit. Daher nutzen viele Bibliotheken diese Kurzform in ihrem eigenen Kontext. Aber mit jeder zusätzlichen Bibliothek, die das Zeichen
$
auf diese Art und Weise verwendet, können auch mehr Konflikte entstehen. Durch das Kapseln Ihres Codes in einer anonymen Funktion stellen Sie sicher, dass Ihr Plugin den Gültigkeitsbereich für
$
im Griff hat und damit potenzielle Konflikte mit anderen JavaScript-Bibliotheken vermieden werden.
    Ein zusätzlicher Nebeneffekt dieser Kapselung ist der, dass ein Closure erzeugt wird. Auf diesem Weg werden die Namensräume von Methoden oder Variablen, die Sie definieren müssen, ordentlich getrennt. Damit verringert sich die Wahrscheinlichkeit, dass es Namenskonflikte mit anderem Code gibt.

Private Funktionen in Ihr Plugin aufnehmen
    Problem
    Ihr Plugin-Code wächst und wächst und muss durchorganisiert werden. Wie können Sie eine private Methode implementieren, die außerhalb des Plugins nicht aufgerufen werden kann?
    Lösung
    Durch das Plugin-Entwurfsmuster, das wir in Ihrem Plugin Optionen mitgeben kennengelernt haben, können private Funktionen ganz normal innerhalb der anonymen Funktion definiert werden, in der wir unser Plugin gekapselt haben. Da die Funktion in einer anonymen Funktion eingebettet ist, kann Code außerhalb dieser Funktion nicht darauf zugreifen. Von außen sind nur Funktionen oder Methoden sichtbar, die an das jQuery-Objekt angehängt wurden.
;(function($) {

$.fn.pulse = function(options) {

    // Übergebene Optionen mit den Standardwerten verbinden
    var opts = $.extend({}, $.fn.pulse.defaults, options);

    return this.each(function() { doPulse($(this),opts); });
}; function doPulse($obj,opts) { for(var i = 0;i     $obj.fadeTo(opts.speed,opts.fadeLow).fadeTo(opts.speed,opts.fadeHigh);
    }

    // Zurücksetzen auf Anfang
    $obj.fadeTo(opts.speed,1); } // Standard-Optionen für das Pulse-Plugin
$.fn.pulse.defaults = {
    speed: "slow",
    pulses: 2,
    fadeLow: 0.2,
    fadeHigh: 1
};

})(jQuery);
    Diskussion
    Da wir unser Plugin nun in einer anonymen Funktion gekapselt haben, lassen sich private Funktionen ganz einfach hinzufügen.
    Durch das Gruppieren in öffentliche und private Methoden haben sowohl die Anwender wie auch der Plugin-Autor Vorteile. Wenn Ihr Plugin wächst und Sie Rückmeldungen aus der Community erhalten, können Sie mit Hilfe der öffentlichen und privaten Methoden ein konsistentes API während der verschiedenen Versionen aufrechterhalten. Das kann von entscheidender Bedeutung für den Erfolg Ihres Plugins sein.
    Durch das Aufteilen in private und öffentliche Nachrichten gibt es zudem Vorteile bei der Organisation Ihres Codes. Wohlorganisierter Code lässt sich leichter lesen, warten und testen. Gut getesteter, sauberer Code führt auch zu weniger fehlerbehaftetem anderen Code.

Das Metadata-Plugin unterstützen
    Problem
    Viele Plugins nutzen das Metadata-Plugin, um Optionen an die eigenen Methoden zu übergeben. Wie kann man die Integration mit dem Metadata-Plugin bewerkstelligen?
    Lösung
    Das Nutzen des Metadata-Plugins ist einfach – prüfen Sie, ob das Plugin verfügbar ist und erweitern Sie dann Ihre Plugin-Optionen durch die Metadata-Parameter. Mit dieser Technik können Sie Standard-Optionen bereitstellen, wenn Sie Ihr Plugin aufrufen, und diese Optionen dann für jedes Objekt, mit dem Sie arbeiten, durch Metadaten im Markup überschreiben:
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">







href="http://github.com/jquery/qunit/raw/master/qunit/qunit.css" type="text/css"
media="screen" />