|
|
#1 (permalink) | |||
|
Erfahrener Benutzer
|
Hallo,
wahrscheinlich ist das ein ganz simples Problem, aber ich habe keine Ahnung, wonach ich googeln soll um da von selbst drauf zu kommen, zumal da etwas ganz seltsam dran ist. Also erstmal mein Code: Code:
Wenn ich jetzt in dem Beispiel, vor dem return ret; das alert(ret); ausführe, bekomme ich zwar ein leeres Alertfenster, aber der String wird einwandfrei zurückgegeben und weiterverarbeitet. Und ich glaube genau das macht mein Problem zu speziell um es zu googeln. Wie gesagt: Vermutlich nur eine Kleinigkeit. Um einen Hinweis oder Hilfestellung wär ich allerdings sehr dankbar! |
|||
|
|
|
| Gesponsorte Links |
|
|
#2 (permalink) | |||
|
ohne Vertrauen
|
Ajax= Asynchrones javascript and XML
dein return ret wird direkt nach dem Ajax-Aufruf durchgeführt, also noch bevor du eine Antwort bekommst. Demnach mußt du dein this.states = tags.split(","); innerhalb des Ajax ausführen, oder dort eine Funktion aufrufen, die das macht. Code:
.DE 1. Jahr 3,95€, 2.Jahr oder Tranfer nur 2,95€! +2 Backlinks je Domain! ab 20 Domains+3 BL/Domain, ab 50 Domains+4BL/Domain! Angebot mit Backlink (Preise sind dauerhaft gültig!) bis 31.5.2012!! Weitere Preise auf Anfrage -> PN an Mich |
|||
|
|
|
|
|
#3 (permalink) | ||||||
|
Erfahrener Benutzer
|
Hmmm, das hatte ich auch schon probiert, funktioniert allerdings auch nicht.
Ich habe folgendes Tutorial benutzt: http://www.webreference.com/programm...t/ncz/column2/ Beispielseite: http://www.webreference.com/programm.../example2.html Code: http://www.webreference.com/programm...utosuggest2.js http://www.webreference.com/programm...uggestions2.js Um die datei suggestions2.js gehts hier quasi. In dem Beispiel wird das array in der function erzeugt. In der Seite, in der der Autosuggester dann auf die entsprechende input-box losgelassen wird, wird übrigens folgendes JS ausgeführt: Code:
Code:
|
||||||
|
|
|
|
#4 (permalink) | |||
|
Erfahrener Benutzer
|
Ich hab die Lösung gefunden:
Code:
Aber was mich immer noch stutzig macht, ist die Tatsache, dass ich (siehe 1. post) die Variable korrekt zurückgeben kann, wenn ich vorher ein alert(ret) mache |
|||
|
|
|
|
#5 (permalink) |
|
bekämpft die Mächte des Bösen
|
Syntaktisch ist die Variable ja vorher definiert.
Praktisch hast du lediglich Glück, wenn du das Ergebnis da schon hast. Bau mal n Sleep vor dem Setzen von ret im AJAX-Return ein, dann merkst du, dass ret immer noch leer is, du den Leerstring zurückgibst und ne halbe Minute später erst vom AJAX-Return gesetzt wird. |
|
|
|
|
|
#6 (permalink) |
|
Erfahrener Benutzer
|
Ich bin jetzt einigermaßen durchgestiegen. Mit Glück hat das glaub ich weniger zu tun, weil das reproduzierbar ist. Durch die asynchronität läuft der AJAX teil wohl immer weiter und scheinbar bricht ein alert(); das ab und die Variablen werden gesetzt. Das kann man aber folgendermaßen vermeiden: async: false,
|
|
|
|
|
#8 (permalink) |
|
ohne Vertrauen
|
Und was den Browser (soweit ich das weiß) auch lahmlegen kann. Zumindest wird beim Dojotoolkit davor gewarnt das zu nutzen.
.DE 1. Jahr 3,95€, 2.Jahr oder Tranfer nur 2,95€! +2 Backlinks je Domain! ab 20 Domains+3 BL/Domain, ab 50 Domains+4BL/Domain! Angebot mit Backlink (Preise sind dauerhaft gültig!) bis 31.5.2012!! Weitere Preise auf Anfrage -> PN an Mich |
|
|
|
|
|
#9 (permalink) |
|
bekämpft die Mächte des Bösen
|
Firefox erkennt Scripte, die nicht mehr reagieren, warnt mich und gibt mir die Möglichkeit, die abzubrechen. Wenn dieses Dialogfenster aber einmal auf einer Webseite aufgeht, @da_freak, sei versichert, dass ich dann diese Seite nie wieder besuche
Sinn von AJAX ist ja, dass es eben AJAX is. AJAX-Programmierung hat dieselben Tücken wie multi-threaded-Programmierung: Jeder AJAX-Request ist wie ein neuer Thread zu behandeln. Man weiß nie, wann er fertig wird. Du musst damit die Anwendung so schreiben, dass auch ohne seine Rückkehr sie korrekt funktioniert. |
|
|
|
|
|
#10 (permalink) |
|
ohne Vertrauen
|
Aber ob das immer klappt? Bzw. wie schnell FF das meldet...
Die Frage ist ja ab wann er meint, das ein Script nicht läuft. Habe mal getestet und in den Openlayers (sowas wie google Maps) 10k Elemente gefügt, die per Ajax kamen. Chrome hats in paar Sek. geschafft, FF hat ~30 Sek. gebraucht, Ie hats gar nicht gepakt. Beim FF kam aber keine Meldung obwohl ich nichts machen konnte. Wohl weil das Script ja gearbeitet hat. .DE 1. Jahr 3,95€, 2.Jahr oder Tranfer nur 2,95€! +2 Backlinks je Domain! ab 20 Domains+3 BL/Domain, ab 50 Domains+4BL/Domain! Angebot mit Backlink (Preise sind dauerhaft gültig!) bis 31.5.2012!! Weitere Preise auf Anfrage -> PN an Mich |
|
|
|
|
|
#11 (permalink) | |
|
bekämpft die Mächte des Bösen
|
Zitat:
Firefox hat mir mehrfach - jeweils nach ner gefühlten halben Minute - dann diese Warnung gezeigt. Ich hab das Script da natürlich nicht beendet, weil ich es ja kannte und wusste, dass es irgendwann fertig wird. Wenn Firefox mit einem sychronen AJAX-Request nicht mehr reagiert, die Warnung aber nicht zeigt, klingt mir das nach einem Bug in Firefox. |
|
|
|
|
|
|
#12 (permalink) |
|
ohne Vertrauen
|
Du hast mehr als 10k Marker in Openlayers auf einmal eingefügt?
.DE 1. Jahr 3,95€, 2.Jahr oder Tranfer nur 2,95€! +2 Backlinks je Domain! ab 20 Domains+3 BL/Domain, ab 50 Domains+4BL/Domain! Angebot mit Backlink (Preise sind dauerhaft gültig!) bis 31.5.2012!! Weitere Preise auf Anfrage -> PN an Mich |
|
|
|
|
|
#14 (permalink) |
|
ohne Vertrauen
|
wieso?
![]() Meine 10k POI waren schon einfach "to much" und unnütz... .DE 1. Jahr 3,95€, 2.Jahr oder Tranfer nur 2,95€! +2 Backlinks je Domain! ab 20 Domains+3 BL/Domain, ab 50 Domains+4BL/Domain! Angebot mit Backlink (Preise sind dauerhaft gültig!) bis 31.5.2012!! Weitere Preise auf Anfrage -> PN an Mich |
|
|
|
|
|
#15 (permalink) |
|
Erfahrener Benutzer
|
danke für den Einwand, tH. Ich hab das async:false; wieder rausgenommen und das mit einem Aufruf an eine Funktion außerhalb des requests gemacht, so wie es Bububoomt schon vorgeschlagen hat. Keine Ahnung warum das nicht funktioniert hatte, entweder nicht zu Ende gedacht oder von mir falsch umgesetzt. Mittlerweile geht's auch damit.
|
|
|
![]() |
| Gesponsorte Links |
| Anzeige |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|