ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Ajax-Post dauert sehr lange

Geschlossen
  1. #1
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Hallo zusammen,

    wir haben auf unserer Seite eine Shoutbox, bei der per Ajax-Post das Formular abgeschickt wird und ohne Reload der Seite die neue Nachricht auf der Seite angezeigt wird.
    Schreibt man reinen Text, läuft der Vorgang auch ganz normal ab, enthält der Text allerdings Smiley-Code, dauert der Post ca. 30 Sekunden (siehe Anhang).
    gesperrtes Bild

    Der Post in der Box-Datei sieht wie folgt aus:
    form.on('submit', function(e) {
                e.preventDefault();
                
                var val = $('#commsub').attr('value');
                var action = (val == 'Eintragen' ? 'addcommbox' : 'changecommbox');
                
                $.ajax({
                    url         : 'index.php?tippspielrequest-'+action,
                    type        : 'POST',
                    dataType    : 'json',
                    data        : form.serialize(),
                    success     : function(response) {
                        if (response.success) {
                            $("#smilies_and_gifs").fadeOut("fast");
                            $("#overlay").css("display", "none");
                            $(".comms_out").html(response.comments);
                            $("#commstext").val('');
                            $('#commsub').attr('value', 'Eintragen');
                            if (action == 'Eintragen') {
                                var anzComms = $('#commscount');
                                var newanzComms = parseInt(anzComms.text())+1;
                                anzComms.text(newanzComms);
                            }
                            $('#comm_'+response.newid).fadeOut("slow");
                            $('#comm_'+response.newid).fadeIn("slow");
                            $('#btn_write_comm').css('display', 'block');
                            $('#commsform').fadeOut("fast");
                            $("html, body").animate({ scrollTop: 0 }, "slow");
                        } else {
                            alert(response.errorMsg);
                        }
                    }
                });
            });


    Die Auswertung der Post-Daten in der tippspielrequest:
    # neuer Kommentar
        case 'addcommbox':
            $success = false;
            if (empty($_POST['shoutbox_textarea'])) {
                $errorMsg = 'Bitte Text in\'s Kommentarfeld eingeben!';
            } else {
                $errorMsg = 'Unbekannter Fehler';
            }
    
            if (!empty($_POST['shoutbox_textarea'])) {
                $uid      = escape($_POST['uid'], 'integer');
    //            $commtext = escape(iconv('UTF-8', 'ISO-8859-15',$_POST['shoutbox_textarea']), 'textarea');
                $commtext = escape($_POST['shoutbox_textarea'], 'textarea');
                $commdate = time();
    
                db_query("INSERT INTO prefix_tippspiel_koms (uid, text, date) VALUES (".$uid.", '".$commtext."', ".$commdate.")");
                # auch der Insert dauert schon extrem lange
                $new_id = db_last_id();
                tippspiel_log($commdate, $uid, 'Comm', 'Neuer Kommentar von: '.$uid);
    
                $success = true;
    
                ob_start();
                tippspiel_renderCommsBox('shbox');
                $comments = ob_get_clean();
            }
    
            $response = array (
                'comments'  => utf8_encode($comments),
                'success'   => $success,
                'errorMsg'  => $errorMsg,
                'newid'     => $new_id
            );
            echo json_encode($response);
            exit();
            break;


    Das Witzige ist: wenn ich in der tippspielrequest.php den case leer lasse bzw. nur das Array mit einem Test-Wert zurückgebe, dauert der Vorgang immer noch so lange. Mmn liegt es also nicht an dieser php-Datei.

    Falls mir hier jemand helfen möchte, das Problem zu beseitigen, bitte Bescheid sagen, welchen Code ich hier noch posten soll.

    Vielen Dank und Grüße
    Outi

    Nachtrag: in der selben Shoutbox gibt es für Admins eine Editier-Funktion für jeden einzelnen Eintrag. Wenn man hier einen Eintrag, der bereits Smiley-Code enthält, nachträglich bearbeitet und abschickt, geht der Vorgang flüssig von statten. Bearbeitet man nachträglich einen Eintrag ohne Smiley-Code und fügt dann einen Smi.ey ein, dauert es wieder sehr lang.


    verwendete ilch Version: 1.1 P

    betroffene Homepage: externer Link


    Zuletzt modifiziert von Outi77 am 30.06.2022 - 13:02:16
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Kann geschlossen werden, habe den Fehler endlich selber gefunden.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten