2009-06-02 8 views
0

jQuery und ähnliche Bibliotheken bieten eine Reihe nützlicher APIs für das DOM-Traversal und die Manipulation. Wenn Ihre Website eine hohe Anzahl von wiederkehrenden Besuchern aufweist, ist ihre Verwendung leicht zu rechtfertigen, da das Zwischenspeichern die Kosten für die Bandbreite für den Endbenutzer ausgleicht.Modulare JavaScript-Bibliothek mit jQuery-ähnlichen Funktionen

In anderen Fällen sind die Besucher der Website möglicherweise immer eindeutig und daher kann die Bandbreitenstrafe für diese Bibliotheken im Vergleich zu den Vorteilen für ein Entwicklungsteam zu hoch sein.

Gibt es Bibliotheken, die diese Art von DOM-Interaktion bieten, während Sie die für Ihre Seite relevanten Teile auswählen können?

Zum Beispiel

jQuery('#myId').addClass('error'); 

und viele andere APIs in jQuery kann in wenigen Zeilen Code repliziert werden, so ~ 50kB von Downloads zu vermeiden.

Die Frage ist also, existiert eine Bibliothek, die diese Funktionen mit wenig Abhängigkeit von anderen Aspekten der Bibliothek enthält, oder muss ich sie selbst erstellen, wenn nötig?

Gibt es Mechanismen/Tools, um vorhandene Bibliotheken wie jQuery in ihre minimalen Komponenten zu zerlegen?

Antwort

4

Wie besprochen here, wenn Sie Google als Host der Bibliotheken verwenden, hat der Benutzer wahrscheinlich bereits im Cache gespeichert, bevor sie überhaupt auf Ihre Website gelangen.

This page zeigt Ihnen, welche Bibliotheken unterstützt werden. Derzeit:

  • jQuery
  • jQuery UI
  • Prototype
  • script.aculo.us
  • MooTools
  • Dojo
  • SWFObject Neu!
  • Yahoo! Benutzeroberflächenbibliothek (YUI) Neu!

Ich bin ganz Ihrer eigenen für Rollen, aber sicher sein, Sie alle Fehler aller Browser-Versionen, wenn Sie nicht über eine Bibliothek verwenden.

Keine schlechte Idee, obwohl. Es wäre schön, wenn Sie eine benutzerdefinierte Version von jQuery erstellen könnten. Ich würde besonders gerne eine für iPhone Mobile Safari und Adobe AIR, die alle nicht-Webkit Zeug entfernt.

+0

Die Verwendung der von Google gehosteten Version wurde berücksichtigt. Wir können nicht garantieren, dass ein Benutzer den Artikel im Cache speichert und ein angemessener Teil der Benutzerbasis keine Breitbandverbindungen hat. Benutzerfreundlichkeit ist von größter Bedeutung. Die Website ist auch für sichere Inhalte, so dass externes Hosting nicht unbedingt wünschenswert ist. Ich bin nicht wirklich ein Fan von meinem eigenen Rollen, es ist nicht die Kernkompetenz des Geschäfts. Letztendlich würde ich nur einen Weg finden wollen, oder ein Werkzeug haben, das die Auswahl der gewünschten Teile von jQuery etc. ermöglicht. – bradhouse

+0

+1 gute Idee zum Entfernen von nicht webkit Zeug! – alex

+0

Ich habe gehört, dass jQuery an einer mobilen Version arbeitet, ich nehme an, ohne den ganzen Kram, der benötigt wird, um den funkigsten Desktop-Browser zu unterstützen. – Nosredna

0

Auschecken Sly. Nur 3kB.

+0

Das ist nur eine Auswahlmaschine richtig? Sie können nicht manipulieren, glaube ich. Sizzle, Peppy und andere sind ähnlich – Nosredna

+0

Das ist richtig. – RedFilter

+0

Kein schlechter Start, aber. Wenn der Wählmotor aus dem Weg ist, sollte die Manipulation nicht zu hart sein. – Nosredna

3

Die Produktionsversion von jQuery ist 19k, das gleiche wie ein eher kleines Bild. Keine strenge Bandwidh-Strafe in meinem Buch!

Bearbeiten: ..und lohnt sich auch k.

+1

Nur um klar zu sein, es ist 19k * nach * gzip (das sollte auf die Mehrheit der Transfers angewendet werden). Die verkleinerte Version von 1.3.2 ist eigentlich 56k. Da die meisten anderen Bibliotheken diese Nummer nicht bewerben, kann die Verwendung von Vergleichen mit der gzip-Größe zu Verwirrung führen. –

1

Mit MooTools können Sie nur die gewünschten Teile herunterladen. Wenn alles, was Sie wollen, für JSON AJAX-Anfragen ausreicht, haben Sie es.

http://mootools.net/core

+0

Ja, das ist ziemlich gut. Du bist bei 30k, sobald du Element- und Element-Stil gezogen hast. Ich schätze, wenn du sonst nicht viel ziehst, ist das eine ordentliche Ersparnis gegenüber jQuery. – Nosredna

+0

Und natürlich macht Gipping aus einigen ziemlich kleinen Dateien. –

0

Sorry Leute ich irgendwie verloren die Seite, in dem man über JS Bibliotheken Konflikte Lösung wurde gefragt.

Ich hatte das gleiche Problem, aber jetzt löste ich es nach dem Spielen mit einigen JQuery-Skripten. Ich weiß, es ist ein bisschen Schmerz in * aber lassen Sie es Schritt für Schritt tun.

Zunächst möchte ich Ihnen sagen, dass ich in meinem Projekt zwei verschiedene Bibliotheken verwende. Ich benutze Lightwindow und JQuery. Ich konnte nicht beide Bibliotheken richtig funktionieren, aber ich kam mit dem folgenden Skript. Sie müssen dieses Skript innerhalb jeder Funktion verwenden, die die JQuery-Funktionen verwenden soll:

// Diese Zeile besagt, dass das Dollarzeichen $ zur JQuery-Bibliothek gehört.

jQuery (document) .ready (function ($) { // Ihr Quellcode geht hier

.});

Lets verwenden Sie es in wenig detailliert. In meinem Szenario eine Klick-Taste Ich habe die folgende Funktion aufrufen annehmen:

 function popups(message, heading, actionlink, linkName) { 

// Das ist die Linie, die den Rest des Quellcodes sagen // JQuery Funktionen zu erkennen.

  jQuery(document).ready(function($) { 

      // get the screen height and width  
      var maskHeight = $(document).height();  
      var maskWidth = $(window).width(); 


      // assign values to the overlay and dialog box 
      $('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show(); 
      $('#dialog-box1').show(); 


      // display the message 
      $('#dialog-message-row').html(message); 
      $('#dialog-message-heading').html(heading); 
      $('#dialog-message-actionlink').html("<a onclick=function('x') class='button' id='delete'>"+linkName+"</a>"); 

      });//CLOSE JQuery translator 
     } 
Verwandte Themen