Zum Inhalt springen

Extension mit AJAX: eID und/oder xajax?

Erstellt am 23. Juli 2007 · 32 Antworten · letzte Antwort am 24. Juli 2007 · Seite 1 von 2

Tags: JavaScript & AJAX, Frage

Unbekannter Benutzer ·

ich staune immer wieder ab dir just2b 🙂

zu eID: Was ist deine Meinung bezüglich Sicherheit? Wie beurteilst du den Lösungsansatz mit eID für AJAX-Anwendungen im Frontend?

jenses ·

xajax ist einfach zu integrieren, funktioniert aber nicht 100%ig im IE.
Um das herauszufinden reicht es, die xajax_tutorial - Extension zu installieren und in verschiedenen Browsern zu testen.
Ähnliche Probleme gab es mit jQuery.
Nach Anfangsschwierigkeiten habe ich nun die ext-Bibliothek genutzt (als TYPO3-Extension extJS ).
Die ist sehr mächtig (leider auch einige kB groß) und bietet viele Features.
Anfangschwierigkeiten bedeutete in meinem Fall, nicht um bestimmte Eigenmächtigkeiten des IE bei der Vergabe von ID´s an Metatags zu wissen.
Es ist zu empfehlen, alle ID´s mit einem Extension-Prefix zu versehen.
Außerdem kommt es hin und wieder zu Problemen mit kompexeren CSS-Layouts.
Es ist empfehlenswert, ext und einige Funktionstests schon beim Erstellen von XHTML und CSS dabei zu haben, um diese Schwachstellen zu erkennen und noch rechtzeitig umschiffen zu können.

Unbekannter Benutzer ·
just2b schrieb

mit sicherheit hat das doch nichts zu tun.. da muss man genauso drum schauen wie sonst auch

Wenn ich Tetramatrix richtig verstanden habe, hat er es erwähnt. Dann ist das Thema "Sicherheit" abgehackt.

Unbekannter Benutzer ·

@jenses:

Wie sieht dann dein Action-Call beim Formular aus?
z.B. index.php?id=20

Wie holst du dir dann nur die einzelnen Inhalte ohne den ganzen Überfluss?

steffenk ·

seit wann werden denn Themen abgehackt ? 😃

Ich kann nur empfehlen, alle Methoden zu testen. Es gibt für jede pro und kontra.

Wichtig ist auch immer auf fallback zu achten, d.h. es muss auch ohne JS funktionieren.

Ich persönlich halte es wie jenses und preferiere extjs.

zum callback - das funktioniert mit extjs anders, da wird die Aktion einem Event zugeordnet.

Unbekannter Benutzer ·
steffenk schrieb

seit wann werden denn Themen abgehackt ? 😃

In der Schweiz geht das 😉 Schweizer Redewendung

steffenk schrieb

Wichtig ist auch immer auf fallback zu achten, d.h. es muss auch ohne JS funktionieren.

In meinem Fall muss es nicht, da Javascript vorausgesetzt wird. Youtube macht das auch (nicht, dass es eine Referenz sein sollte). Aber Javascript ist Voraussetzung.

steffenk schrieb

zum callback - das funktioniert mit extjs anders, da wird die Aktion einem Event zugeordnet.

Das ist klar, unklar aber, wo hier die serverseitige Schnittstelle greift.
Mal angenommen beim Event "onClick" werden Daten in der Datenbank abgespeichert. Dann muss ich doch ein Ziel-URL angeben, der die nötigen Aktionen durchführt. Bei xajax funktioniert das irgendwie automatisch, bei eID macht man es selber. Oder sehe ich das völlig falsch? Wer klärt mich auf? 🙂

just2b ·

bei eID machst du alles selber, du kannst auch einfach mootools & co nehmen und damit die requests in Kombination mit eID machen.. so mach ich das zB 😉

georg

Stoneage ·

Also ich finde es Schade das hier immer noch über eID gesprochen wird. Das hat ja nun wirklich gar nichts mit Ajax zu tun. Und ist auch kein Zeichen für Professionalität. Der einzige Vorteil denn ich von prototype kenne ist, das es Fenster mit Ein-und Ausblend Effekt kennt. Das kann man natürlich auch selber von Hand in xAjax nachtragen. Also lautet meine Empfehlung xAjax. Die anderen Libs kenne ich leider nicht.

Unbekannter Benutzer ·
Tetramatrix schrieb

Also ich finde es Schade das hier immer noch über eID gesprochen wird. Das hat ja nun wirklich gar nichts mit Ajax zu tun.

Ich finde, eID und AJAX haben indirekt doch miteinander etwas zu tun. Ich brauche eID nicht, um mit Ajax zu arbeiten. eID bewirkt ja nur, dass nur das Nötigste ausgeführt wird, den Rest muss man selber holen.

Wenn ich nun mit AJAX einen bestimmten Inhaltsteil auf meiner Seite aktualisieren will, dann will ich sowenig Overhead wie möglich verursachen. Ich weiss nicht, ob xajax Overhead erzeugt, darum schweige ich lieber.

xajax inkludiert auch prototype, so viel ich weiss.

Nochmals: es ging/geht mir von Anfang an darum, die Unterschiede der beiden Lösungsansätzen zu erfahren.

Stoneage ·

Es geht mir hier in erster Linie darum einen Lerneffekt zu erzielen. eID ist absolut nicht notwendig für Ajax-Requests. Und was nicht notwendig ist sollte man auch nicht einbauen. Außerdem haben xAjax und prototype überhaupt nichts miteinander zu tun. xAjax lädt keine prototype-lib nach. Mir ist unerklärlich wie Du auf diesen Gedanken gekommen bist. Also mit Deinem Wissenstand würde ich Dir raten echt xAjax zu nehmen. Es läuft einfach super. Außerdem ist der Geschwindigkeitsgewinn von eID nur am Anfang wirksam (onload). Und das nur auf dem Server. Client-Seitig ist ja Ajax dafür da nur bestimmte Teil der Webseite nachzuladen und nicht weil es schöner ist, dass die Seite keinen Reload mehr hat. Wenn Du unbedingt Speed haben willst, kannst Du ja auch die JS-Libs noch packen. Das würde sich jedenfalls Client-Seitig auswirken. Zudem musst Du bedenken, dass Du mit eID noch ein weiteres Feature von Typo3 benutzt und Dich zusätzlich davon abhängig machst.

@zu den anderen Kollegen hier: Mir ist echt schleierhaft warum ihr eID und Ajax in einem Atemzug nennt. Das kann ja nur sowas wie Schleichwerbung sein. Zumal Ajax sowieso nur ein Buzzword für eine Technologie ist die es schon Jahre vorhergab (XHTML-Request). Wie soviele anderen Technologien die es schon Jahre auf anderen Plattformen gab und die erst jetzt Einzug in sogar namhafte Produkte finden (z.b. Code-Falting).

Unbekannter Benutzer ·
Tetramatrix schrieb

Es geht mir hier in erster Linie darum einen Lerneffekt zu erzielen. eID ist absolut nicht notwendig für Ajax-Requests. Und was nicht notwendig ist sollte man auch nicht einbauen. Außerdem haben xAjax und prototype überhaupt nichts miteinander zu tun. xAjax lädt keine prototype-lib nach. Mir ist unerklärlich wie Du auf diesen Gedanken gekommen bist. Also mit Deinem Wissenstand würde ich Dir raten echt xAjax zu nehmen. Es läuft einfach super.

Ok, sorry, mein Fehler oder besser gesagt ein Versehen. Hab die Extension "danp_feajax" angeschaut, die mit xajax arbeitet und dort wird "prototype" eingebunden.

Komisch: Obwohl eID nichts mit AJAX zu tun hat, wird sie in der Extension "danp_feajax" in Verbindnug mit xajax benutzt.

Nochmals: gehen wir von der Behauptung weg, dass eID unbedingt erforderlich ist, um AJAX-Anwendungen zu erstellen.

@Tetramatrix:
Wieso stellt Kaspar überhaupt das Konzept der eID vor, wenn xajax die Aufgabe ja bestens löst? Noch immer sind die Unterschiede nicht klar. Und ich spreche hier für einige Entwickler, dass viele gerne AJAX-Funktionalität einbauen möchten, aber in der Tat nicht wissen, wo ansetzen.

steffenk ·

man sollte wissen, das Ajax bereits uralt ist - es erlebt im Moment einen richtigen Aufschwung, da alle im Zuge von Web 2.0 davon schwärmen.

@Tetramatrix - die Verbindung ist klar - Kaspar hat eID eingeführt, um einen "Ansprechpunkt" im TYPO3 Framework für HTTP-Requests zu haben. Er hat eID also in Verbindung mit Ajax und seinem legendären whiteboard "erfunden".
eID ist also eine gute Methode um TYPO33Seiten im HTTP-Request aufzurufen.

Xajax braucht das nicht, es definiert eigene Funktionen für den Request. Und mit Prototype hat xAjax nix am Hut.

Man kann auch alles ohne eID machen, aber die Klasse stellt schon die notwendigsten Typo3-Funktionen zur Verfügung.

extJS ist in meinen Augen ein zukunftsweisendes Framework und ist unbedingt ein Blick wert. Zumal es jetzt auch die TYPO3-Extension gibt. Als einfaches Demo habe ich die Extension skt_contenttabs ins TER gestellt.

Stoneage ·

Weil er nicht programmieren kann! :p Damals gab es eine große Debatte wegen Typo3 und Speed. Ich habe in den Newsgroups mehrmals daraufhingewiesen, dass die Programmierung der Bäume ziemlich langsam ist. Nun hat Kasper ja dieses Video mit eID und Ajax vorgestellt. Daraufhin haben wohl alle dieses Beispiel nachgebaut (ich auch). Jedenfalls war es ja ganz nett. Meiner Meinung nach wollte er uns aber eher die eID-Funktion zeigen und hatte leider kein besseres Beispiel als Ajax zur Hand. xAjax ist in meinen Augen der bessere Weg Ajax und Typo3 miteinander zu kombinieren.

steffenk ·

Das ist aber eine gewagte Theorie, das kaspar nicht programmieren kann 😃

Ich hatte bei xAjax immer das Problem, das es schnell unübersichtlich wurde, aber das lag wohl eher an dem unstrukturierten Aufbau, da ich von dem Tutorial ausgegangen bin. Elmar macht es z.B. in eFaq viel geschickter.

eID hat einen Vorteil - im Gegensatz zu den xAjax-Aufrufen, wo immer das gesamte FE-Strukt geladen wird, kann man bei eID selber bestimmen, welche Objekte man braucht und kann dadurch einiges an Geschwindigkeit gewinnen.
xAjax hat den Vorteil, das es kinderleicht zu integrieren ist und man (fast) nichts beachten muss.

extJS finde ich so genial, weil es auch die ganzen Effekte von prototype/stript... integriert hat, eigene Dialogboxen und Fenster,Drag&Drop etc., also alles, was auch fürs Web sehr praktisch ist. Das Interface ist auch relativ bequem.

Es gibt auch welche, die das mit Dojo, Ruby oder sonstigen Frameworks machen, auf jeden Fall hat man bei solchen Frameworks einen riesen Baukasten zur Verfügung.
Schauts Euch doch mal live an: http://extjs.com/deploy/ext/docs/index.html

Stoneage ·

@steffenk: Du brauchst mir nicht nachzusprechen. Das habe ich doch schon gesagt. Der Trick besteht doch lediglich darin bei einem XHTML-Request den HTTP-Antwort-Header so zu schicken, dass die Seite veraltet ist und der Client daraufhin die Seite neu lädt. Die Seite muß natürlich no_cache sein. Das hat Kasper vermutlich nicht verstanden. Dieses funktioniert mit eID mit normalen Extensions und mit xAjax. Es besteht also kein Grund sich so aufzuregen.

steffenk ·

da hast Du mich missverstanden, ich habe mich überhaupt nicht aufgeregt, das ist eine ganz normale Konversation 😉

jenses ·
Tetramatrix schrieb

Weil er nicht programmieren kann! :p

Für jemanden,
der sich für seine Extension ch_treeview mehr als großzügig bei Rupert Germann bzw. René Fritz bedient,
und das Ergebnis dann als eigene Arbeit ausgibt,
hängst du dich aber ganz schön weit aus dem Fenster.
Bei solchen Leuten komm mir nur das kalte Kotzen...