Falls Ajax verfügbar: normalen Link nicht ausführen ??
Notschko
- javascript
Ich halte nicht viel von der puren Javascript-Programmierung, wie es bei Google der Fall ist. Dennoch möchte ich, falls verfügbar, die Vorteile von Javascript nutzen.
Ein Beispiel:
---------------------------------------------------------------------
<a href="eine_seite.html" onclick="return fenster_oeffnen();">klick</a>
function fenster_oeffnen() {
if( !ajax) return true;
ajax.open( "GET", "eine_seite.html", false); // Synchron
... daten verarbeiten ...
... fenster öffnen ...
return false;
}
----------------------------------------------------------------------
Wenn ajax nicht verfügbar, wird "true" zurückgegeben: der Link wird normal geöffnet.
Wenn ajax verfügbar, lädt ajax den Inhalt, verarbeitet diesen und liefert "false" zurück, damit der eigentliche Link nicht ausgeführt wird.
Da ich ajax synchron verwenden muss (für das verarbeiten), dauert es ein wenig bis false zurückgegeben wird. Solange wartet der Link jedoch nicht und ruft die Seite auf.
Wie sollte ich das Problem angehen/lösen?
Danke!
Notschko
hi,
Da ich ajax synchron verwenden muss (für das verarbeiten),
Warum meinst du das zu müssen?
dauert es ein wenig bis false zurückgegeben wird. Solange wartet der Link jedoch nicht und ruft die Seite auf.
Hm, wundert mich.
Solange die Abarbeitung des Scriptteils nicht beendet ist, müsste auch der Link noch "warten".
Sicher, dass es nicht an einem zwischendurch auftauchenden Fehler liegt?
Wie sollte ich das Problem angehen/lösen?
Asynchron - da dir synchron im Fehlerfalle die komplette Seite lahmlegen kann.
gruß,
wahsaga
... die Werte die responseText zurück liefert werden mit eval() in JavaScript eingebunden. Zum Beispiel: var test="wert"
Danach wird diese Variable vom Script abgearbeitet.
Das Script kann also erst weiterlaufen, wenn die Variable verfügbar ist.
Aber du hast Recht, man sollte das Script asynchron laufen lassen.
Ich versuche, ob ich das irgendwie mit "onreadystatechange" lösen kann.
Danke!
hi,
Da ich ajax synchron verwenden muss (für das verarbeiten),
Warum meinst du das zu müssen?
dauert es ein wenig bis false zurückgegeben wird. Solange wartet der Link jedoch nicht und ruft die Seite auf.
Hm, wundert mich.
Solange die Abarbeitung des Scriptteils nicht beendet ist, müsste auch der Link noch "warten".
Sicher, dass es nicht an einem zwischendurch auftauchenden Fehler liegt?Wie sollte ich das Problem angehen/lösen?
Asynchron - da dir synchron im Fehlerfalle die komplette Seite lahmlegen kann.
gruß,
wahsaga