Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12178[/thread]

Ajax: prototype und große Formulare

Leser: 3


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
MartinR
 2008-07-14 11:22
#112086 #112086
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Ich versuche gerade per Ajax mit protoype große Formulare zu verarbeiten. Enthält das Formular aber mehr als 200 Formularfelder, so bricht das Script ab. Bei weniger funktioniert es einwandfrei.

Zum Auslesen des Formulares verwende ich die prototype-Funktion serialize

Code: (dl )
new Ajax.Request('/some_url', {   parameters: $('id_of_form_element').serialize(true)   }); 


Kenn jemand dieses Verhalten bzw. hat jemand einen Lösungsvorschlag?
GwenDragon
 2008-07-14 13:40
#112093 #112093
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Was sagt denn die Fehlerkonsole beim Abbruch?
MartinR
 2008-07-14 15:39
#112096 #112096
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
... äh, kannst mir noch sagen wie ich die auslesen kann? Danke.

Ich kenn ja nur "onFailure", aber da kann ich die Meldung ja selbst definieren ...
GwenDragon
 2008-07-14 15:42
#112097 #112097
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Im jeweiligen Browser, meine ich!
Opera: Extras -> Weiteres -> Fehlerkonsole
FF: Extras -> Fehlerkonsole

Wie machst du denn dein Debugging und die Anzeige von Fehlern bei JS?

//EDIT:
Du schriebst ja:
Quote
Enthält das Formular aber mehr als 200 Formularfelder, so bricht das Script ab. Bei weniger funktioniert es einwandfrei.
Dann muss es ja irgendwo eine Exception o. ä. geben, die dann in er Fehlerkonsole auftaucht.
Oder fängst du alle Fehler ab?
MartinR
 2008-07-15 09:28
#112121 #112121
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Nun, da wird wohl nichts drin stehen. Mit "Abbruch" meinte ich die von prototype angebotene Funktion ( oder wie man es nennen will ) "onFailure"

Das aufgerufene Java-Skript sieht so aus.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
function BerechneQuotierung() {
new Ajax.Request (
'https://domain/seminare_v2/berechne_quotierung',
{
method: 'get',
parameters: $('termin_formular').serialize(true),
onComplete: ZeigeBerechneteQuotierung,
onLoading: BerechneQuotierungLaden,
onLoaded: BerechneQuotierungLadenFertig,
onFailure: BerechneQuotierungFehler
}
);
}



Und bei on Failure wird dann eben die (selbst definierte) "function BerechneQuotierungFehler" ausgeführt. Ich weiß aber nicht, ob man den Grund für onFailure irgendwie rausbringen kann ...

Zudem habe ich hier im Büro leider nur den IE zur Verfügung ... ;-(
Struppi
 2008-07-15 11:46
#112124 #112124
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
wieso sollte in der Fehlerkonsole nichts stehen? Die protoype Events fangen keine JS Fehler ab.
GwenDragon
 2008-07-15 12:15
#112125 #112125
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Es gibt auch einen EventHandler für Exceptions. onException nenne sich der.
Einfach mal auf http://www.prototypejs.org/api/ajax/options nachsehen. ;)

Quote
bei on Failure

Ein EventHandler hat nichts mit Exceptions zu tun.
Zudem fangen alle deine Handler nur Probleme der AJAX-Kommunuikation ab.

Probleme in Prototype selbst oder JS kann der nicht abfangen.

Es geht darum herauszufinden, wo prototype streikt oder du dein Skript falsch geschrieben hast oder gar Javascript selbst aussteigt.

Quote
Zudem habe ich hier im Büro leider nur den IE zur Verfügung ... ;-(
Man sollte nicht mit unzureichenden Werkzeugen (Browser, JS-Frameworks) arbeiten oder mit welchen ohne genügend Kenntnisse zu haben.
Dann schau bitte im IE, welche Javascriptfehler auftauchen, die kannst du auch anzeigen lassen, denn Exceptions sollte der IE auch anzeigen.
renee
 2008-07-15 12:21
#112128 #112128
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie man im IE JavaScript debuggen kann: http://www.jonathanboutelle.com/mt/archives/2006/0...

Nur mit IE arbeiten zu müssen ist schon echt schlecht. Ich habe genau das gleiche Problem bei einem Kunden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MartinR
 2008-07-15 13:29
#112132 #112132
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Danke, den Debugger hab ich mir gereade geholt. Leider hat er die Eigenart, dass sich der IE dann aufhängt ...

Ich würde ja gerne von prototype erfahren "warum" die Handler onFailure oder auch onException aufgerufen werden - also irgendeine Rückmeldung im Klartext von prototype. Da werd ich aber auf die schnelle auch aus der Docu nicht schlau.

Ich hab nun auch mal den FF3.0 installiert und hier tritt der Fehler nicht auf.


@GwenDragon
Quote
... ohne genügend Kenntnisse zu haben ...

... verzeih mir bitte meine geistige Unbeweglichkeit. Darum frag ich ja hier weil ich annehme, dass hier viele Leute sind die viel schlauer sind als ich.
renee
 2008-07-15 13:43
#112133 #112133
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Da ja onFailure ausgeführt wird, scheint JS ja ok zu sein. Lass das onFailure mal weg und lass Dir in onComplete den Statuscode ausgeben:

Code: (dl )
1
2
3
4
  onComplete: function(transport) {
alert (transport.status)
// yada yada yada
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2008-07-14 11:22.