• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

SJAX-Request bringt alles durcheinander, Reihenfolge des Ablaufs richtig...

jmar

New member
Hallo zusammen

Frage: Wieso wird greift der auskommentierte Teil (wenn er nicht mehr auskommentiert ist!!) nicht und wird vollständig ignoriert??

- Vor dem SJAX-Request "sendConfiguratonsParameters(...)" sollte dem Button der Text "..., please wait..." angehängt werden, des weiteren soll eine Deaktivierung erfolgen!

Code:
		mySubmitButton.value = "<?php echo SUBMIT_BUTTON_TEXT; ?>, please wait...";	
		mySubmitButton.disabled = true;

- Nach dem SJAX-Reqquest "sendConfiguratonsParameters(...)" soll der Button wieder den Ursprungstext haben, des Weiteren soll er wieder aktiv werden?

Code:
		mySubmitButton.value = "<?php echo SUBMIT_BUTTON_TEXT; ?>";
		mySubmitButton.disabled = !mySubmitButton.disabled;


...wo bitteschön liegt hier das Problem?!? Kein AJAX, also alles synchron, richtige Reihenfolge der Instruktionen, etc...(?)

Wie schräg ist denn sowas?

Ganzer Code hier:

Code:
		alert("This process can take up to 30 seconds. If the configuration is invalid, the timeout will be reached after <?php echo MAX_EXECUTION_TIME; ?> seconds.");
		
		var mySubmitButton = document.getElementById("<?php echo SUBMIT_BUTTON_NAME; ?>");
		var mySubmitButtonText = mySubmitButton.value;
		
		/*
		mySubmitButton.value = "<?php echo SUBMIT_BUTTON_TEXT; ?>, please wait...";	
		mySubmitButton.disabled = true;
		*/
		
		response = sendConfigurationsParameters("xxx", "xxx", "CH");
		alert(response);
		
		/*
		mySubmitButton.value = "<?php echo SUBMIT_BUTTON_TEXT; ?>";
		mySubmitButton.disabled = !mySubmitButton.disabled;		
		*/


Danke für die Feedback & Grüsse,
Jan
 
solange js ausgeführt wird, wird nicht gerendert.
wenn du also einem element per js einen text zuweist, und später überschreibst, ist das im DOM des browsers zwar zu sehen, in der ausgabe allerdings nicht, weil nur der endzustand gerendert wird.
sehen solltest du also SUBMIT_BUTTON_TEXT (zum php-script ausführungszeitpunkt, der schon stunden zurückliegen könnte. das ist klar oder?) wenn das auch nicht zu sehen ist, musst du mehr zeigen
bzw. wenn der text vorher auch schon SUBMIT_BUTTON_TEXT gewesen ist, siehst du keine veränderung
 
Danke fürs Feedback!!

"solltest du also SUBMIT_BUTTON_TEXT (zum php-script ausführungszeitpunkt, der schon stunden zurückliegen könnte. das ist klar oder?) wenn das auch nicht zu sehen ist, musst du mehr zeigen
bzw. wenn der text vorher auch schon SUBMIT_BUTTON_TEXT gewesen ist, siehst du keine veränderung"

So ist es aktuell... allerdigs habe ich sowas schon mal geschafft über SJAX, allerdings weiss ich nicht mehr genau wie. Irgend ein Workaround gibt's dafür. (?)

- - - Aktualisiert - - -

P.S.: Das Forum ist extrem langsam, schlimmer als ne Internetverbindung in den 90er mit Modem. Und das war schon beim schreiben meines 1. Beitrags der Fall...

- - - Aktualisiert - - -

Da das Forum spinnt ("Möchten Sie die Seite verlassen?" wenn man auf "Antworten" klickt..) Wurde meine Antwort offenbar 2x verfasst. Anyway..
 
Zuletzt bearbeitet von einem Moderator:
So ist es aktuell... allerdigs habe ich sowas schon mal geschafft über SJAX, allerdings weiss ich nicht mehr genau wie. Irgend ein Workaround gibt's dafür. (?)
naja, du kannst eine weitere krücke einbauen um die auswirkungen der krücke mit dem synchron request zu begrenzen.
Code:
// alert("This process can take up to 30 seconds. If the configuration is invalid, the timeout will be reached after <?php echo MAX_EXECUTION_TIME; ?> seconds.");
		
		var mySubmitButton = document.getElementById("<?php echo SUBMIT_BUTTON_NAME; ?>");
		var mySubmitButtonText = mySubmitButton.value;
		
		/*
		mySubmitButton.value = "<?php echo SUBMIT_BUTTON_TEXT; ?>, please wait...";	
		mySubmitButton.disabled = true;

setTimeout(function()
{
response = sendConfigurationsParameters("xxx", "xxx", "CH");
		alert(response);
		
		mySubmitButton.value = "<?php echo SUBMIT_BUTTON_TEXT; ?>";
		mySubmitButton.disabled = !mySubmitButton.disabled;	
}, 0);
wobei mir noch auffällt, dass da alerts stehen - eine weitere krücke
bin mir nicht ganz sicher, ob nach alert gerendert wird, es könnte also sein, dass ab dem alert das "please wait..." zu sehen ist

- - - Aktualisiert - - -

test alert:
im ff wird gerendert, in einem ie 11 und chrome 71.0.3578.98 nicht
was noch aufgefallen ist und mich sehr überrascht hat, der ff rendert nicht mehr nach jedem js-lauf mit dom-änderung, das setTimeout muss also noch in ein requestAnimationFrame (ich bin kein fan dieser änderung)
Code:
<!doctype html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    text
    <script>
      document.addEventListener("DOMContentLoaded", function()
      {
        document.body.innerHTML += '<div>test alert</div>';
        alert(1+1);  
        document.body.innerHTML += '<div>test context wechsel</div>';
        requestAnimationFrame(function()
        {
          setTimeout(function()
          {
            document.body.innerHTML += '<div>test synchron</div>';
            var time = new Date();
            while (new Date() - time < 10000)
            {
              
            }
          }, 0);
        });
      });
    </script>
  </body>
</html>
 
Hallo jmar!

@jmar: bitte benutze den Button Zitieren, wenn du auf einen Beitrag antworten und darin zitieren möchtest.

- - - Aktualisiert - - -

P.S.: Das Forum ist extrem langsam, schlimmer als ne Internetverbindung in den 90er mit Modem. Und das war schon beim schreiben meines 1. Beitrags der Fall...
Ist das immer noch so? Wie ist deine Anbindung?

- - - Aktualisiert - - -

Da das Forum spinnt ("Möchten Sie die Seite verlassen?" wenn man auf "Antworten" klickt..) Wurde meine Antwort offenbar 2x verfasst. Anyway..
Dann hast du wahrscheinlich ein Browsertab schließen wollen auf dem gleichzeitig irgendwo ein Texteingabe-Feld offen war. Und da du auch das schließlich gesendet hast, war die Antwort doppelt.
Der Klick auf Antworten oder Zitieren öffnet das textarea Feld an Ort und Stelle. Dafür wird die Seite nicht neu geladen.

Ich vermute mal, du warst mit winzigem Display von irgendwo unterwegs mit schlechtem Netz hier. Kann das sein?

Hilft denn die Antwort von tsseh
 
Hallo zusammen

Zwar ein "wenig" verspätet, aber: Bin gerade meine Bookmarks durchgegangen um diese aufzuräumen. Da ist mir der Link zu diesem Thread aufgefallen. Mein Problem hat sich soweit geregelt, schon seit einiger Zeit, vielen Dank!

(Habe gerade gesehen dass ich auch vergessen habe die Mailbenachrichtigung einzuschalten, mea culpa, aufgrund meiner vielen anderen Task geriet auch deswegen die Sache auch in Vergessenheit)

Zu den anderen Sachen:

- Das Forum läuft in guter Geschwindigkeit, keine Probleme mehr. Aber unser Netz (in der Firma wo ich arbeite) sollte relativ schnell sein
- Ein kleines Display ist auch nicht der Fall, brauche grundsätzlich nie mobile Gerät fürs WWW

"was noch aufgefallen ist und mich sehr überrascht hat, der ff rendert nicht mehr nach jedem js-lauf mit dom-änderung, das setTimeout muss also noch in ein requestAnimationFrame (ich bin kein fan dieser änderung)"

Dem werde ich bei Gelegenheit noch nachgehen, mal schauen wie das jetzt aussieht!
 
Zurück
Oben