Hier sehen Sie eine Liste aller von Magento standardmäßig geladenen Skripts:
%Vor%diese Skripte insgesamt 316.8K Javascript ... alle in verschiedenen Zuständen der Minimierung (zum Beispiel prototype.js ist nicht minimiert).
Also meine erste Frage:
1) Abgesehen von prototype.js, sind alle anderen wirklich notwendig?
und
2) Was ist der "richtige" Weg, um diese Skripte zu entfernen? Layoutaktualisierungen? Oder in Templates fest codiert?
Ich möchte das Laden meiner Magento-Site so leicht wie möglich machen.
Danke!
Um Teil 1 zu beantworten - nein, nicht alle davon sind erforderlich, aber die meisten sind und hängen von Ihrem Thema ab. Ein Magento-Standardmotiv verwendet sie alle, aber ein benutzerdefiniertes Magento-Theme wird fast sicher nicht alle Scriptaculous benötigen.
Die varien, mage und prototype werden fast immer benötigt werden, ein Thema zu schaffen, das mit all diesen sehr, sehr, sehr schwer abgeht, da einige der von ihnen abhängigen Seiten-Javascript nicht vom Thema kommen, sondern aus den Kern-PHP-Dateien.
Bei einfachen Designs hatte ich gute Ergebnisse beim Entfernen von Dragdrop und Slider, da ich die Produkt-Zoom-Anzeige nicht verwende. Sie können Menü entfernen, wenn Sie nicht das Magento-Menü verwenden, aber nur wenn Sie bereit sind, Dummy-Js-Funktionen zu machen, um alle zurückliegenden Anrufe zu fangen - das Menü Navigationsobjekt injiziert JavaScript-Funktion direkt von der PHP-Ebene, die benötigt wird gefangen werden (oder besser noch, Sie können ein eigenes Kategorie-Navigationsobjekt rollen, das dies nicht tut!).
Für Teil 2 - Bearbeiten Sie das Layout Ihrer Themes page.xml, um sie aus der Liste zu entfernen %Code% Etikett. Ich schlage vor, sie auszukommentieren und jeden einzelnen zu testen, wie Sie gehen.
Sie können die erforderlichen Javascript-Dateien in die Seitentypen einfügen, die sie benötigen, indem Sie Javascript-Tags zum Kopfbereich der entsprechenden Layout-Dateien hinzufügen. Als Beispiel für die Vorgehensweise sehen Sie sich die Standarddatei sendfriend.xml an, die die Datei product.js nur für Seiten, die sie benötigen, in den head.files fügt.
Wenn Sie Javascript aggressiv basierend auf dem Seitentyp hinzufügen / entfernen, müssen Sie auch überlegen, wie Magento Javascript-Dateien zusammenführt. Es gibt eine Einstellung im Entwicklerbereich der Konfigurationsbildschirme, um Javascript-Dateien zusammenzuführen. Das Einschalten ist eine sehr gute Sache. Dies führt alle Javascript-Dateien im Kopfbereich zusammen, die mit "addJs" oder "addItem" mit dem Elementtyp "js" oder "skin_js" injiziert wurden.
ABER deshalb, wenn Sie beginnen, Skripte seitenweise einzufügen / auszuschließen, werden Sie feststellen, dass Sie verschiedene fusionierte js-Dateien auf verschiedenen Seiten generieren - wodurch die meisten Vorteile einer großen js-Datei im Cache zerstört werden!
Um das Beste aus beiden Welten zu erhalten, sollten Sie in der Lage sein, js in den Kopf zu injizieren, ohne jedoch den Elementtyp anzugeben, wodurch verhindert wird, dass diese Datei zusammengeführt wird - aber ich habe das noch nicht ausprobiert. Wenn dies funktioniert, werden die Kernbibliotheken zusammengeführt und die benutzerdefinierten Dateien pro Seite einzeln eingeschlossen. Dies bedeutet, dass Sie die große Zwischenspeicherung vornehmen und nur das geänderte Bit herunterladen.
Ich kann nicht sagen, wofür sie alle sind, aber ich weiß, dass die meisten von ihnen ärgerlich gebraucht werden, da Magento JS verwendet.
Dies beantwortet Ihre Frage nicht, aber Sie können ihre Wirkung mit Magento 1.4.01 minimieren (wahrscheinlich auch in 1.4.0), indem Sie auf System - & gt; Konfiguration - & gt; Erweitert - & gt; Entwickler - & gt; JavaScript-Einstellungen und dann alle zusammenführen, so dass Sie nur eine HTTP-Anfrage haben (dasselbe kann mit CSS getan werden).
Ich würde vermuten, dass der "richtigste" Weg, sie zu entfernen, darin bestehen würde, ein neues Thema zu erstellen, das sie nicht benötigt und sie nicht einbezieht, da sie nicht benötigt würden. In Antwort auf Frage 2 würde ich also Vorlagen sagen wäre auf jeden Fall der Weg nach vorne. Ich kann mich nicht an die genaue Vorlage erinnern, die das steuert, aber ich bin sicher, dass ich eine gesehen habe, die eine große Liste von JS / CSS-Includes enthält
Tags und Links javascript magento prototypejs