php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.08.2010, 11:27  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard JS / extJS on demand

Hi zusammen,

ich möchte gerne Javascript Komponenten für einzelne Views eingrenzen. Insbesondere die verschiedenen Teile des ExtJS Framworks um weniger nicht genutzen Code an den Browser zu übertragen.

Hierzu fallen mit 2 Varianten ein:
1. JS lädt die Komponenten bei bedarf einfach nach, dazu muss ich das JS einfach in einzelne Files aufteilen (load-on-demand methode)
2. Ich definiere in meinem PHP Code welche JS-Komponenten ich beim aufgrufenen view brauche und lasse mir von PHP eine Datei generieren die den benötigten JS Code enthält (generate-on-demand methode)

Was meint ihr bzw. wie würdet ihr vorgehen?

Gruß
cy
cycap ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.08.2010, 12:33  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

sorry, ausversehen falsches forum erwischt, bitte verschieben
cycap ist offline   Mit Zitat antworten
Alt 16.08.2010, 12:49  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Mit On-Demand ist das bei JavaScript so eine Sache. Eingebundene Skripte werden nur dann zuverlässig geparst, wenn sie noch vor dem DOMDocumentReady-Event eingefügt werden. Ansonsten bleibt nur die Methode mit AJAX+eval().

Themenmoderation:
[→] Verschoben von HTML, Usability und Barrierefreiheit
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 16.08.2010, 13:09  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Naja ich hab in einem aktuellen Projekt 1,7 MB JS-Code und bei dem relaunch des Projektes will ich davon wegkommen alles auf einmal zu laden. Also deiner Aussage nach sollte ich also eher die generate-on-demand methode nutzen?
cycap ist offline   Mit Zitat antworten
Alt 16.08.2010, 13:16  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Würde ich vorschlagen. Dazu noch das JS minimieren (Spaces entfernen, dazu solltest du allerdings auch nach schließenden geschweiften Klammern Semikola setzen: };) und per GZIP komprimiert ausliefern. Dann solltest du nur noch wenige KB übertragen müssen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 16.08.2010, 13:25  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Naja ich hab in einem aktuellen Projekt 1,7 MB JS-Code
WTF ...?

Sprichst du von reinem Code, oder auch Daten (JSON o.ä.)?
Hast du das schon GZIP-komprimiert?


Mit beiden Varianten, die du vorgeschlagen hast, gibt es Performance-Probleme.
Bei 1) hast du zahlreiche HTTP-Requests mit entsprechendem Overhead. Bei einer normalen Website wäre das eher ein no-go - Suchmaschinen wollen ja zukünftig auch die Gesamtladezeit einer Seite ins Ranking einbeziehen (Stichworte Google PageSpeed, YSlow). Bei einer Web-Applikation wäre dieser Faktor eher zu vernachlässigen, da können dem Nutzer Wartezeiten eher zugemutet werden.
Bei 2) verschenkst du leicht die Möglichkeiten des Caching. Du kannst zwar in deinem PHP-Script entsprechendes implementieren (Last-Modified, 304-Antwort, ggf. Expires) für Ressourcen, die dem Client bereits vorliegen. Das geht aber nur jeweils auf Ebene eines kompletten „JS-Pakets“ - wenn noch andere Komponenten benötigt werden, erzeugt dein PHP-Script wieder eine neue Ressource, die wieder komplett vom Client geladen werden muss. Es sei denn, du kombinierst das wiederum mit 1) - dann muss dein PHP-Script aber auch noch die Logik implementieren zum nachvollziehen, welche Komponenten der Client bereits vorliegen hat, und welche er noch separat nachladen muss.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 16.08.2010, 13:31  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
WTF ...?

Sprichst du von reinem Code, oder auch Daten (JSON o.ä.)?
Hast du das schon GZIP-komprimiert?
ExtJS-Files + eigenen Code, minified, nicht komprimiert.

Mit der GZIP komprimierung habe ich mich nicht weiter auseinander gesetzt nachdem ich gelesen hatte das der IE6 damit Probleme hat. Es handelt sich hier zwar um eine WebApplikation, also die Suchmaschinen sind mir egal, aber die Ladezeit ist dennoch ein wichtiger Punkt, da die App viel über GPRS/UMTS in Verbindung mit VPN genutzt wird.
cycap ist offline   Mit Zitat antworten
Alt 16.08.2010, 13:36  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Mit der GZIP komprimierung habe ich mich nicht weiter auseinander gesetzt nachdem ich gelesen hatte das der IE6 damit Probleme hat.
Man soll ja auch nicht ausschließlich eine GZIP-komprimierte Version anbieten, sondern als Alternative für Browser, die damit umgehen können.

Beschäftige dich auf jeden Fall damit - gerade aus textbasierten Formaten kann GZIP idR. noch einiges „rausholen“.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 16.08.2010, 14:37  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Zitat:
nachdem ich gelesen hatte das der IE6 damit Probleme hat
Kann ich nicht bestätigen. FÜr refining-linux.org habe ich per .htaccess alles GZIP-komprimiert. Soweit ich weiß, wertet mod_deflate aber auch den Accept-Encoding-Header aus.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 16.08.2010, 20:18  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hi cycap, habe grade ähnliches vor, vor allem wegen der Vielzahl an JS-Dateien (ne Menge jQuery-Plugins inklusive deren CSS-Dateien). Alles in allem schnell mal 20 Dateien.

Minified werden alle automatisch, falls in PHP eingestellt (gibt da eine PHP-Minify Klasse im Netz). GZIP hat einige Probleme gemacht, lohnt sich aber trotzdem auf jeden Fall.

Mein Ziel war es noch, da ich sowieso die ViewHelper im ZF benutze und damit eine Liste der benötigten JS-Dateien habe, das ganze "zusammenzufassen", also die Inhalte der JS-Dateien zu laden, daraus einen Schlüssel zu bilden und diesen als einiges <script> einzubinden.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einarbeitung in extjs. Felder per PHP füllen jackie1983 JavaScript, Ajax und mehr 6 25.05.2010 15:57
php 5.3 und Extjs Frameworks mit HTML und JS?? snakemedia PHP Tipps 2009 8 23.01.2010 22:25
ExtJS Text markieren cycap JavaScript, Ajax und mehr 0 22.07.2009 09:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
extjs nachladen, extjs load-on-demand, extjs js nachladen, extjs load javascript, extjs komprimieren, extjs load on demand, extjs ondemand, extjs javascript nachladen, extjs script nachladen, extjs minified, minify extjs, extjs code nachladen, extjs nachladen von scripts, extjs liste php, extjs minify code, extjs aufteilung, extjs ladezeit, viewhelper in extjs, extjs datei nachladen, extjs komponenten mit php erzeugen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum