Rajax soll den Ablauf der Entwicklung einer Ajax basierten Seite verkürzen.
Durch die Frontend und Backend Bibliotheken ist es möglich in windeseile Daten aus der Datenbank
formatiert im Backend in einen html Bereich schreiben zu lassen.
Wie in einem CMS üblich wird aus der Datenbank den Inhalt einer Seite dargestellt.
Genau das Prinzip geht Rajax nach. Eine Tabelle aus der Datenbank könnte für einen Punkt auf einer Seite stehen.
Dieser Punkt könnte mehrere Seiten beinhalten.
Es soll das Designen der Seite in den Vordergrund bringen, da nurnoch wenig im Backend getan werden muss.
Wie Rajax funktioniert:
1. User input von der Maus oder jeder anderen möglichen Form empfangen
2. Ausführung von funktionen in der main.js(oder anderer *.js Dateien)
3. Datenanfrage an den backend bereich der Applikation schicken
4. Daten von SQL-Datenbank empfangen
5. Einpflegen in HTML Datei
Zum Beispiel eine simple html Datei:
Sowie eine Tabelle mit dem Namen artikel: id|titel|text
1 |test1 | testtext
2 |test2 | testtext
sie wird durch ein template im backend(app/template/)
wir nennen das Template "eintraege.phtml" und stecken sie in den template ordner
Nun wird ein Anfrage an den Server gerichtet:
Wie funktioniert eine Anfrage in Rajax?
Ein bestimmter Controller wird angesprochen mit einer bestimmten Methode z.B. "wordpress_getPages"
Controller: wordpress, Methode: getPages()
Es ist möglich die Daten in 3 verschiedenen Ausgabeformaten zu bekommen: html, json, xml
Optionen bieten die Möglichkeit, die Daten in selbst manipulierter Form wieder zu bekommen.
Das html format bietet standardmäßig 2 verschiedene optionen an:
Alle einträge werden mit dem template genutzt.
- template:file=src
Abwechselnd wird template A und B genutzt.
-template: odd=src;even=src
Man kann auch den eigenen Controllerfunktionen "Ereignisse" bei bestimmten optionen zuweisen.
Zum beispiel wie die template:file=path_to_file option gebaut wurde:
Man kann zusätzliche Werte mitgeben an den Controller. Sie werden in der Regel benutzt um die richtigen
Daten aus der Datenbank zurückzugeben.
z.B. page/MeinePage
wird an die getPageByName Funktion im wordpress Modul gesendet. Die Funktion nimmt sich "MeinePage"
und such in der Datenbank danach und gibt das Ergebnis zurück.
Nun wird die $.rGet Methode aufgerufen in der main.js, die durch den Autoloader mit geladen wurde:
nun wird ein Request an das Backend geschickt, es wird durch eine Routing klasse
an einen Controller geschickt(test) und ruft die Methode holeDaten auf.
Die test klasse:
Nachdem wir die vom Server zurück bekommen haben werden die Daten von jQuery in #container geschoben.
Das Resultat würde so aussehen:
Rajax bietet von sich aus 2 Funktionen, um eine linkbasierte Seite zu erstellen:
$(selector).rajaxNavi() konvertiert links in Rajax kompatible Wörter. $.rajaxWatch überwacht den Browser und die URL.
Es übeprüft ob im Objekt, das der Funktion übergeben wird,
ein Schlüssel passend eines Parameters in der URL mit übereinstimmt.
Bei erfolg wird die Funktion im Schlüssel ausgeführt. CMS - Teilunterstützung bis jetzt:
- wordpress db
Durch das wordpress Modul ist es möglich ,ohne die html Datei aufzuspliten in endlich viele teile,
grundlegende Funktionen wie blog und pages sowie blog/pages extern verlinkungen und navigation zu verwenden.
Das wordpress Adminpanel kann weiterhin benutzt werden.