Seite 1 von 1
Ajax will nicht
Verfasst: Fr 01.Jun, 2007 14:44
von Sonic2007
Hallo,
ich habe folgendes Problem mit Ajax:
Ich habe folgenden Code: (siehe Anhang)
wenn ich nun jedoch eine anfrage folgendermaßen ausführe:
Code: Alles auswählen
<div id="test"></div>
<script type="text/javascript">
<!--
ajax_submit("test.txt","test");
//-->
</script>
Die .js habe ich so eingebungen:
Code: Alles auswählen
<script type="text/javascript" src="ajax/ajax.js"></script>
dieser Teil befindet sich im Head-Bereich.
erscheint in dem Div durchgehend: Laden...
Die Datei text.txt ist im gleichem Verzeichnis und enthält folgendes:
test
Verfasst: Fr 01.Jun, 2007 15:19
von bce
wieso fügst du den code in einer rar-datei an? ist doch umständlich, wenn man sie erst laden und dann entpacken muss. deshalb gibts ja eigentlich die code-boxen
was soll das skript bewirken?
eine ausgabe "laden" solange die seite noch lädt nehm ich mal an...
edit: du initialisierst die variable ajax mit
hmm.. ich kenne es mit
Verfasst: Fr 01.Jun, 2007 15:22
von Sonic2007
Also: Für den Code war es etwas zu lang gewesen...
Jedenfalls will ich per funktion ajax_submit("test.txt","test");
in dem Div test die Datei test.txt einfügen (also den inhalt).
Solange Ajax die Seite aber noch nicht geladen hat soll in dem
Div der Text Laden ... stehen. Jedoch bleibt das Laden stehen und es ändert sich nichts...
Es ist so als bleibt Ajax bei dem State 1 stehen und kommt nicht weiter.
Verfasst: Fr 01.Jun, 2007 15:28
von bce
ist das im IE genauso wie in firefox?
Verfasst: Fr 01.Jun, 2007 15:30
von Sonic2007
Ja. Ist in Opera und IE genauso wie in firefox
Verfasst: Fr 01.Jun, 2007 15:52
von oxpus
Naja, abgesehen vom fehlenden Sinn dieser Aktion fehlt es hier auch an einem Auslöser, der den Code erneut ausführt.
Was passiert denn?
Die Seite wird geladen und "ajax" wird erstellt.
Dann erfolgt das "ajax_submit", welches sagt (gemäß der Abfolge): Öffne das Dokument, lade den Inhalt und schliesse es wieder.
Dann wird abgeprüft, ob der Responce fertig und gültig ist, also 4 und wirft ansonsten "Laden..." aus.
Da aber der Status 4 nicht erreicht wird, da das Script hier aufhört, bleibt es dann auch bei dieser Anzeige.
Versuche daher mal diese ajax_submit:
Code: Alles auswählen
// Anfrage senden
function ajax_submit(page,id)
{
ajax.open('GET',page,true); // GET anstelle get
eval("ajax.onreadystatechange = "+ajax_reaction(id));
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
ajax.send(null);
return true;
}
Diese führt den onreadystatechange als "Befehl" und nicht als Zuordnung aus, was ungleich effektiver ist.
Dazu wird auch ein gültiger Header gesendet, sonst kann das Script ebenfalls hier abbrechen.
Und zurückspringen muss das Script ebenfalls, sonst würde ja die Seite auch "anhalten".
Soweit ich das also jetzt sehen kann (ungetestet), sollte das Event damit eintreten können und der Text der Datei angezeigt werden...
Verfasst: Fr 01.Jun, 2007 15:58
von Sonic2007
hmm genau das gleiche.
Edit: Fehler gefunden. Bei der Rückgabefunktion dürfen keine Parameter übergeben werden. Sonst werden Daten falsch übergeben.
Verfasst: Sa 02.Jun, 2007 11:47
von bce
und wie schaut das ganze nun aus.. nur zur info
Verfasst: Sa 02.Jun, 2007 12:15
von oxpus
Bei der Rückgabefunktion dürfen keine Parameter übergeben werden. Sonst werden Daten falsch übergeben

?
Meinst Du ajax.send(null)?
Das hängt dann nur vom Browser ab...
Verfasst: Sa 02.Jun, 2007 13:46
von Sonic2007
ajax_reaction(id) <- Das mein ich. Ohne (id) klappt es.
Verfasst: Sa 02.Jun, 2007 13:53
von oxpus
Ach so!
Ja, klar, danke für den Wink mit dem gesamten Zaun!
ID ist ja global bereits vorhanden und würde durch diesen Aufruf nochmals neu geschrieben, also damit falsch sein.
Hätte ich auch dran denken müssen.....