Ankündigung

Einklappen
Keine Ankündigung bisher.

Ajax Request - resend

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ajax Request - resend

    Hallo,

    ich versuche gerade meinen Ajax-Request so oft zusenden bis data.next null ist.

    Aktuell wird er natürlich nur noch einmal gesendet.

    Kann man den aktuellen Request irgendwie einfach noch mal senden bis man irgendwas zurück gibt was ihn stopt?


    HTML-Code:
    $(document).ready(function() {
    
        $( ".update" ).on( "click", function() {
            $('#overlay--update').show();
    
            $.ajax({  
                url: 'meineURL.php',
                error : function(xhr, textStatus, errorThrown) {  
                    alert('Ajax request failed.');  
                }  
            }).done(function(data) {
               // console.log(data);
                if(data.next) {
                    var settings = { url: 'meineURL.php?next=' +data.next}
                    $.ajax(settings);
                }
            });        
        });
    });
    LG und schönen Samstagabend














  • #2
    Du kannst so oft einen Request(ob Ajax oder normal) absetzen wie du magst, du bist der Programmierer.

    Kommentar


    • #3
      Ja, aber beim ersten Request gebe ich ein Wert zurück, dann muss dieser Request mit dem Wert erneut gesendet werden und das solange bis der Wert null ist. Da stehe ich grad auf den schlauch das dies eben automatisch durch läuft da ich ja nur einmal den Button klicke.

      Kommentar


      • #4
        Und wo ist das Problem den Request in eine Schleife zu packen und so lange zu wiederholen bis die Abbruchbedingung erfüllt ist?
        https://developer.mozilla.org/de/doc...atements/while

        EDIT
        Der Sinn dahinter erschliesst sich mir allerdings nicht.

        Kommentar


        • #5
          Das ist nicht das Problem. Aber die Parameter beim Request ändern sich ja... sprich der erste gibt eine id zurück die im 2 verarbeitet werden muss... der zweite gibt eine id zurück und so weiter

          die ids habe ich aber erst nach dem der davor abgearbeitet ist...

          könnte auch alles abarbeiten aber da tu ich mich schwer mit einer fortschritt anzeige da ich die Fortschritte nach und nach an die selbe Ausgabe anhängt

          Kommentar


          • #6
            Rekursive Funktionsaufrufe?

            Code:
            function foo(bar)
            {
                bar = ...
                foo(bar)
            }
            
            foo()

            Kommentar


            • #7
              Ja, das ist alles richtig.

              Aber da funktioniert dsa doch nichtg:

              -> klick auf Button
              -> Request wird gesendet
              -> Erster Datensatz wird aktualisiert -> Rückgabe x %
              -> Zweiter Datensatz wird aktualisietrt -> Rückgabe x %
              -> usw.

              bzw. lass ich mir beim ersten die id vom nächsten Datensatz mit geben, und diese müsste dann an ajax übergeben werden und das solange bis es keine id mehr zurückgibt.

              Also irgendwie check ich das nicht was ihr meint bzw. wenn ich google dannach kommen Beispiele mit fixen Werten etc.

              Kommentar


              • #8
                Dann zeig doch mal den Stand der Dinge.

                Kommentar


                • #9
                  Steht doch in mein ersten Post was vermutlich kompletter Blödsinn ist für das was ich möchte

                  Kommentar


                  • #10
                    Wie viele Datensätze hast du den zu aktualisieren, dass es einer Fortschrittsanzeige bedarf?

                    Kommentar


                    • #11
                      Das können von 3 - x werden.. Es wird aber mehr verarbeitet anhand des jeweiligen Datensatzes, deswegen wäre so eine Anzeige schon schön.

                      Kommentar


                      • #12
                        Mach das doch mit Promises. Jedes Mal, wenn Du eine Response zurück bekommst, schaust Du, ob der Aufruf noch mal gemacht werden muss - mit den Parametern aus eben dieser Response.

                        Übrigens ist das wahrscheinlich keine gute Vorgehensweise. Was ist, wenn der User die Seite neu lädt?

                        Kommentar


                        • #13
                          Naja es öffnet sich ja eben was wo der fortschritt angezeigt wird... wenn er neu lädt und die verarbeiten ne durch sind kann ich dann später was ausgeben....


                          wenn das nicht gut ist was wäre denn der richtige weg? Alles auf einmal verarbeiten? Dann lädt die seite eventuell mal länger und der user drückt auch f5 :/

                          mh weiß ne

                          Kommentar


                          • #14
                            Zitat von Ralf2020 Beitrag anzeigen
                            wenn das nicht gut ist was wäre denn der richtige weg?
                            Ein Worker-Job im Backend.

                            Wenn man aber damit leben kann, dass der "Job" abbricht, wenn der User den Browser schließt, spricht auch nichts dagegen das clientseitig mit JavaScript zu machen.

                            Kommentar


                            • #15
                              Das wäre in diesen fall wirklich nicht unbedingt tragisch.

                              naja muss ich mal sehen was wie die bessere Lösung ist... vielleicht mach ich einfach ohne fortschrittanzeige und nur mit ein loading overlay

                              Kommentar

                              Lädt...
                              X