AJAX - Entwicklungsumgebung gesucht
ingobar
- programmiertechnik
0 Jeena Paradies0 ingobar
0 dedlfix1 Sven Rautenberg
Guten Morgen zusammen,
ich habe jetzt meine erste größere AJAX-Anwendung geschrieben und bin mit den Nerven völlig runter.
Ich habe ca. 60 php-Seiten und 20 js-Dateien benutzt; jede Interaktions-Maske ist eine Kombination aus einer php-Datei für das Interface, einer js-Datei fürs AJAX und einer zweiten php-Datei für das Schreiben der Daten in die MySQL-Datenbank.
Irgendwie habe ich aber das Gefühl, dass ich den Code nicht wirklich gut (effizient) gschrieben habe. Daher meine Frage:
Kennt hier jemand eine Tool (Buch,Entwicklungsumgebung, oä) mit dem man effizient AJAX-Anwendungen entwickeln kann? Interessieren würden mich Punkte wie
Wäre über jeden Tipp dankbar
Hallo,
- Wie organisiert man die DB-Zugriffe (einmal richtig, oder viele kleine)
- Erstellen von Formularen zentral steuern
- Animationen einbinden
- Vielleicht kann man auch über Objektorientierung in php was machen
Ich würde zwar kein PHP verwenden (just kidding), aber Objektorientierung ist ein sehr gutes stichwort. Ich mache das ungefähr so, dass ich eine allgemeine Klasse für DB Zugriffe habe, die das ganze verbinden und Query schicken, zurücknehmen und so übernimmt. Es gibt dann dort Methoden mit namen "query", "fetch", "num_rows" usw.
Dann mache ich mir eine Klasse zum erstellen von HTML-formularen, das können strenggenommen auch normale Funktionen sein. Ich übergebe dann nur die Daten an die Funktionen und bekomme fertigen HTML-Code zurück.
Für Ajax braucht man ja nicht wirklich viel, ich lasse das ganze HTML auf dem Server erstellen und hole es mit so etwas wie meinem LoadRemoteHTML()-Objekt, das mir das ganze auch gleich mit hilfe von innerHTML in meine Seite einfügt so bald es da ist.
Dann würde ich an deiner Stelle nur ein solches server-Script schreiben, dass verschiedene "Actions" bearbeiten kann, so dass man sich doppelten Quellcode auf jeden Fall immer spart, denn jede der Aktionen folgt ja dem gleichen Muster:
1. Daten annehmen
2. Entscheiden welche Action zuständig ist
3. Action arbeitet
- checken ob daten i.o. sind
- verbindung zur DB herstellen
- query absetzen
- Daten aus der DB annehmen
- die Daten verarbeiten
- die Daten in HTML packen
4. Daten an dein Ajax Objekt zurückgeben
Das einzige was sich bei den actions ändert ist ja der Check ob die Daten i.o. sind, wie das Query aussieht und dann wie man die Daten aus der DB verarbeitet und in HTML packt. Alles andere ist ja immer das gleiche.
Viel Spaß beim basteln :-)
Jeena
Das liest sich von der Idee super. Ich werde es mal objektorientierte ansetzen: Eine Klasse für den DB-Verkehr und eine für die Interfaceerstellung.
Schwierig wird immer noch das Prüfen der Daten. Das sind bei mir js-Dateien mit 400 Zeilen. Aber vielleicht geht das noch besser. Mal sehen.
Auch werde ich wohl noch mal die Datenbankstruktur überarbeiten. Ist es eigentlich besser möglichst viel in der DB zu speichern oder viel in JS zu berechnen?
Danke nochmals für deine ausführliche Antwort,
ingobar
echo $begrüßung;
Kennt hier jemand eine Tool (Buch,Entwicklungsumgebung, oä) mit dem man effizient AJAX-Anwendungen entwickeln kann?
AJAX ist kein genormter Standard oder ein (mehr oder weniger) klar definiertes Einzelprodukt (wie beispielsweise PHP) sondern eine Zusammenfassung verschiedener Techniken, die jeder Benutzer des Begriffs AJAX für sich selbst unterschiedlich implementiert haben kann. Wenn du nicht auf bereits fertige Komponenten aus den diversen Bibliotheken zugreifen kannst, wirst du dafür sicher keine Entwicklungsumgebung finden. Bücher dagegen gibt es schon eher, nicht nur eins, und auch online abrufbare.
Interessieren würden mich Punkte wie
- Wie organisiert man die DB-Zugriffe (einmal richtig, oder viele kleine)
- Erstellen von Formularen zentral steuern
- Animationen einbinden
- Vielleicht kann man auch über Objektorientierung in php was machen
- oder über xslt
All das ist möglich, aber nicht zwingend notwendig. Vielleicht hilft dir das Stichwort JSON weiter, die Handhabung von Datenstrukturen auf beiden Seiten (Javascript im Client vs. Server) zu vereinfachen.
echo "$verabschiedung $name";
Moin!
ich habe jetzt meine erste größere AJAX-Anwendung geschrieben und bin mit den Nerven völlig runter.
Ich habe ca. 60 php-Seiten und 20 js-Dateien benutzt; jede Interaktions-Maske ist eine Kombination aus einer php-Datei für das Interface, einer js-Datei fürs AJAX und einer zweiten php-Datei für das Schreiben der Daten in die MySQL-Datenbank.
Das klingt mir deutlich zu viel.
Mein aktuelles Projekt besteht aus grob vier PHP-Dateien, einer JS-Datei und einer größeren Menge an HTML-Templates. Zusätzlich (das zähle ich nicht mit, weil als Paket hinzugefügt) Smarty als Template-Engine und jQuery mit Plugins (ajaxForm, Tooltip und Thickbox).
Das allerwichtigste aber: Eine .htaccess, die per Rewriting jede ".html"-URL auf die eine PHP-Datei mappt, und jede ".ajax"-URL auf eine zweite PHP-Datei. Anhand der URL wird dann das passende Content-Template in das Master-Template eingesetzt (bei ".html") oder auch nicht (bei ".ajax").
Ich gebe aber gerne zu, dass in diesem Konglomerat noch so gut wie keinerlei Business-Logik steckt. Die würde vermutlich die Zahl der PHP-Dateien noch etwas erhöhen - aber keinesfalls auf 60 Stück.
Irgendwie habe ich aber das Gefühl, dass ich den Code nicht wirklich gut (effizient) gschrieben habe.
Das Gefühl würde ich auch kriegen.
Kennt hier jemand eine Tool (Buch,Entwicklungsumgebung, oä) mit dem man effizient AJAX-Anwendungen entwickeln kann? Interessieren würden mich Punkte wie
- Wie organisiert man die DB-Zugriffe (einmal richtig, oder viele kleine)
Man erstellt sich eine PHP-Klasse (am besten nutzt man PHP 5 und mysqli als Basisklasse, die man ggf. nur noch leicht erweitert) für DB-Zugriffe, der man dann eigentlich nur noch Querys übergibt von einer zweiten Ebene von Klassen, die die Datenbankabstraktion enthalten (also Umsetzung von allgemeiner Datenlogik auf konkrete Datenbanksprache). Diese zweite Ebene wird angesteuert von einer dritten Ebene, die die Business-Logik verkörpert.
Die Unit-Tests können dann schön arbeiten: Die Border-Klasse der Datenbank (und ggf. auch die Klassen für Dateizugriffe, Mailversand etc.) wird in einem eigenständigen Test-Set auf Funktion geprüft, alle Klassen der zweiten Ebene verwenden für ihre Tests hingegen nur Mocks dieser Border-Klassen, die konsistentes Verhalten simulieren, ohne dass die Notwendigkeit einer echten, befüllten Datenbank (oder eines Dateisystems etc.) besteht. Dasselbe gilt auch für die Klassen in Ebene 3 etc.
- Erstellen von Formularen zentral steuern
Templates verwende. Kein Formular ist wie das andere, ich tue mich gedanklich schwer, das generatormäßig abzubilden.
- Animationen einbinden
jQuery verwenden. Z.B. auch mit dem Plugin "Interface".
- Vielleicht kann man auch über Objektorientierung in php was machen
Wie gesagt: Größere Applikationen NICHT objektorientiert und testgetrieben zu entwickelt halte ich für absoluten Wahnsinn und viel zu fehleranfällig.
- oder über xslt
Ist nur dasselbe in grün: Bringt dich substantiell nicht weiter.
- Sven Rautenberg
Hallo Sven,
jQuery verwenden. Z.B. auch mit dem Plugin "Interface".
Was ist der Vorteil gegenüber anderen Bibliotheken wie Prototype?
Grüße
Jasmin
Moin!
jQuery verwenden. Z.B. auch mit dem Plugin "Interface".
Was ist der Vorteil gegenüber anderen Bibliotheken wie Prototype?
Schnell, klein, leicht zu erlernen (nutzt zum Auffinden von HTML-Elementen CSS-Selektoren).
Ob das alles echte Vorteile sind, kann ich mangels Kenntnis von Prototype nicht abwägen.
- Sven Rautenberg