Bug: Διπλό submit στον IE

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Bug: Διπλό submit στον IE

Δημοσίευση από skeftomilos » 28 Ιαν 2006 14:48

Να ένας ωραίος τρόπος να περάσει κάποιος το πρωινό του Σαββάτου. Να του κάτσει ένα τόσο ενδόμυχο bug που να τραβάει για τρεις ώρες τα μαλλιά του. Όλα ξεκίνησαν από ένα απλό button:

Κώδικας: Επιλογή όλων

<input type="button" onclick="this.form.submit&#40;&#41;">
...το οποίο στην πορεία άλλαξε φύλο και έγινε submit:

Κώδικας: Επιλογή όλων

<input type="submit" onclick="this.form.submit&#40;&#41;">
Προφανώς ο κώδικας στο onclick είναι πια περιττός, αλλά άνθρωποι είμαστε και σφάλματα κάνουμε. Όμως ο κώδικας δεν είναι μόνο περιττός αλλά και επιζήμιος. Ο Internet Explorer 6 ορισμένες φορές στέλνει δύο submit στον server! Δε συμβαίνει κάτι ανάλογο με τον IE5 ή τους άλλους browsers. Έτσι λοιπόν άρχισαν να συμβαίνουν περίεργα πράγματα στην εφαρμογή μου, αλλά δυστυχώς δεν υποψιάστηκα εξαρχής τον browser. Έπρεπε να ελεγχθούν η database, το middle-tier, το caching και μισή ντουζίνα σελίδες, προτού τελικά πέσει τυχαία το μάτι μου σε αυτό το αναθεματισμένο onclick.

Η παρακάτω ASP σελίδα αναπαράγει στο σφάλμα. Αν πατηθεί μερικές φορές το κουμπί submit, όχι πολύ γρήγορα, ορισμένες φορές ο μετρητής θα αυξηθεί κατά δύο.

Double-Submit-IE-Bug.asp

Κώδικας: Επιλογή όλων

<%
  Application&#40;"counter"&#41; = Application&#40;"counter"&#41; + 1
%>
<html>
  <head>
    <title>Double-Submit-IE-Bug</title>
  </head>
  <body>
    <h2>Double-Submit-IE-Bug</h2>
    Application&#40;"counter"&#41; = <%=Application&#40;"counter"&#41;%>
    <form>
      <input type="submit" onclick="this.form.submit&#40;&#41;">
    </form>
  </body>
</html>
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27616
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Bug: Διπλό submit στον IE

Δημοσίευση από cordis » 31 Ιαν 2006 13:08

skeftomilos έγραψε: Ο Internet Explorer 6 ορισμένες φορές
MS αθάνατη! :P :P
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης