---
title: "Extension mit AJAX: eID und/oder xajax?"
url: "https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","JavaScript & AJAX"]
created: "2007-07-23"
last_reply: "2007-07-24"
replies: 32
solved: true
page: 1
pages: 1
lang: "de"
---

# Extension mit AJAX: eID und/oder xajax?

Extensions › Entwicklung · 32 Antworten · gelöst · gestartet 2007-07-23

## Frage

**Unbekannter Benutzer** · 2007-07-23 · [Beitrag #1](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/1)

Hi allerseits

Ich möchte eine eigene Extension schreiben, die im Frontend mit AJAX-Funktionen arbeitet und so bestimmten Inhalt ohne vollständiges Laden der Seite verarbeitet. Als AJAX-Library will ich "prototype" verwenden.

Jetzt stellt sich die Frage, ob für diese Umsetzung xajax eingesetzt werden oder ich das ganze per eID lösen soll.

Hat jemand bereits Erfahrungen damit sammeln können? Was sind eure Empfehlungen? Vor- und Nachteile?

Besten Dank für eure Hilfe.

Gruss
Pantelis

## Beste Antwort

**Unbekannter Benutzer** · 2007-07-23 · [Beitrag #5](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/5)

Also empfiehlst du, xajax einzusetzen? Oder wie integriert man AJAX-Funktionalität im Frontend, wo einzelne Inhalte abgerufen/verarbeitet werden? Ist xajax 1st choice? Gibt es andere Lösungsansätze?

## Antworten

### [#2](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/2) · Stoneage · 2007-07-23

Eigentlich haben eID und Ajax nichts miteinander zu tun. eID ist ein Killbit für Typo3 um zb. die BE-Klassen bei einem FE-Aufruf nicht zu laden (Geschwindigkeit-und Speicher Management). Für Ajax brauchst Du diesen Overhead nicht, Du brauchst nur in Deiner Extension den Typo3-Cache auszuschalten und bei jedem Ajax-Request die richtige HTTP-Head-Anwort zu senden. Also eigentlich wie bei xAjax. Aber das gleiche kannst Du auch mit Prototype machen, oder habe ich da was falsch verstanden?

### [#3](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/3) · Unbekannter Benutzer · 2007-07-23

Danke Tetramatrix. Indirekt hat eID schon etwas mit AJAX zu tun. Ohne eID müsste man den ganzen Overhead, wie du es beschrieben hast, für Ajax-Aktionen mitgeben, was nicht sinnvoll ist.

Vielmehr will ich nun erfahren, welche Unterschiede es zwischen der Umsetzungsvariante "eID" und der Extension "xajax" gibt. Worin liegt also der Unterschied? Was spricht für, was gegen die jeweiligen Lösungsansätze? Wird bei xajax auch der ganze Overhead mitgegeben?

### [#4](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/4) · Stoneage · 2007-07-23

Ohne jetzt groß nachzuschauen: Mit Overhead meine ich den eID-Overhead, eID-Get-Variable, externe Datei etc, was ja wiederum ein Unsicherheitsfaktor dastellt, je nach Betrachtungsperspektive. Wenn Du den xAjax-Weg gehst brauchst Du das ganze Zeug nicht.

### [#5](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/5) · Unbekannter Benutzer · 2007-07-23 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

### [#6](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/6) · just2b · 2007-07-23

Hallo,

eID ist mit Sicherheit schneller als xajax, man muss halt mehr selber machen. Zudem hat xajax Probleme mit gecachten Extensions

georg

### [#7](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/7) · Unbekannter Benutzer · 2007-07-23

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?

### [#8](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/8) · just2b · 2007-07-23

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

### [#9](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/9) · jenses · 2007-07-23

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.

### [#10](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/10) · Unbekannter Benutzer · 2007-07-23

> **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.

### [#11](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/11) · Unbekannter Benutzer · 2007-07-23

@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?

### [#12](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/12) · steffenk · 2007-07-23

seit wann werden denn Themen abgehackt ? :D

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.

### [#13](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/13) · Unbekannter Benutzer · 2007-07-23

> **steffenk schrieb:**
>
> seit wann werden denn Themen abgehackt ? :D

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? :)

### [#14](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/14) · just2b · 2007-07-23

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

### [#15](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/15) · Unbekannter Benutzer · 2007-07-23

> **just2b schrieb:**
>
> 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 ;)

Damit ich das jetzt ein für alle mal richtig verstanden habe... du löst das vom Ansatz her also wie hier in diesem Beispiel? <http://www.sk-typo3.de/Ajax-mit-prototype-und-eID.328.0.html>

Falls ja, dann bist du genug Referenz für mich, dass ich es auch so mache :)

### [#16](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/16) · Stoneage · 2007-07-23

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.

### [#17](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/17) · Unbekannter Benutzer · 2007-07-23

> **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.

### [#18](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/18) · Stoneage · 2007-07-23

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).

### [#19](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/19) · Unbekannter Benutzer · 2007-07-23

> **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.

### [#20](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/20) · steffenk · 2007-07-23

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.

### [#21](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/21) · Stoneage · 2007-07-23

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.

### [#22](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/22) · steffenk · 2007-07-23

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

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>

### [#23](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/23) · Stoneage · 2007-07-23

@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.

### [#24](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/24) · steffenk · 2007-07-23

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

### [#25](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/25) · Stoneage · 2007-07-23

@steffenk: Hast Du aber #giggle# .

### [#26](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/26) · jenses · 2007-07-23

> **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...

### [#27](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/27) · Stoneage · 2007-07-23

@jensens: Ich hoffe da bist Du nicht der einzige...  :p

### [#28](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/28) · Unbekannter Benutzer · 2007-07-24

> **steffenk schrieb:**
>
> 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.

In der Tat :)

Wenn ich das richtig gesehen habe, lädt deine Extension "skt_contenttabs" die Inhalte alle auf einmal. Vielmehr würde mich jetzt noch interessieren, wie du das lösen würdest, wenn z.B. beim Klicken des 2. Reiters der Inhalt des Content-Elements mit der ID 20 geladen wird. Oder wenn z.B. eine Manipulation des Inhaltes vorgenommen wird. Mein Problem ist, dass ich die server-seitige Schnittstelle nicht sehe, nachdem die ganze Seite schon mal geladen wurde und danach nachträglich irgendwelche Manipulationen von einzelnen Inhalten durchgeführt werden.

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>

### [#29](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/29) · steffenk · 2007-07-24

<http://www.dowjonesindexes.com/>

da siehst Du wie bei Tabclick die Elemente geladen werden (einfach mal JS-Code anschauen)

### [#30](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/30) · Unbekannter Benutzer · 2007-07-24

> **steffenk schrieb:**
>
> <http://www.dowjonesindexes.com/>
>
> da siehst Du wie bei Tabclick die Elemente geladen werden (einfach mal JS-Code anschauen)

Soweit habe ich alles verstanden. Entweder wird der Inhalt eines URLs mit der Methode "setUrl" geholt oder über den Updater, wo auch einen URL angeben kann.

Jetzt mal angenommen, ich würde im 2. Reiter den Inhalt des Content-Elements mit der ID 20 anzeigen wollen.

Würde der Aufruf in etwas so aussehen (alles Pseudo- bzw. Beispielcode)?

```javascript
var tab2 = jtabs.addTab('jtabs-2', "Ajax Tab 2");
tab2.setUrl('index.php', 'eID=skt_contenttabs&cID=20', true);
```

In der entsprechenden Datei der Extension "skt_contenttabs" würde man dann die entsprechenden Anweisungen tätigen, die dann zur Ausgabe des Inhaltes führen.

Läuft nun der Hase so? Oder gibt es auch andere Lösungsansätze?

### [#31](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/31) · steffenk · 2007-07-24

ja genau so könnte man das machen ;)

### [#32](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/32) · Unbekannter Benutzer · 2007-07-24

> **steffenk schrieb:**
>
> ja genau so könnte man das machen ;)

Du hast wirklich fundierte Erfahrungen. Welchen Lösungsansatz siehst du noch? ;)

Ich weiss, ich bin hartnäckig #angry#

### [#33](https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax/33) · steffenk · 2007-07-24

naja, Ajax ist Ajax - man muss halt eine Url aufrufen, daher eignet sich eID.
Oder man baut das ganze mit xAjax auf, auch hier gibts gute Beispiele.
Schau Dir da z.B. die Ext danp_feajax an.

---

Quelle: „Extension mit AJAX: eID und/oder xajax?“, typo3.net, https://www.typo3.net/d/65678-extension-mit-ajax-eid-undoder-xajax
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
