webForumDet fria alternativet

Visa texten "Vänta" medan en for-loop körs

2 svar · 413 visningar · startad av Terminal

TerminalMedlem sedan juli 20103 inlägg
#1

Hej!

Har ett litet problem. Bakgrunden är att jag har en ganska tung for-loop som körs när användaren trycker på en knapp. Jag vill att när användaren trycker på denna knapp så ska texten "Vänta" dyka upp i något input-fält (eller liknande), sedan skall for-loopen köras, och när den är färdig ska texten bytas ut mot "Klar". Varför jag vill åt detta är för att när for-loopen körs så kommer vissa webbläsare att "hänga sig", vilket kan få användaren att tro att scriptet har hängt sig och försöker klicka på massa annat.

Jag har försökt med att lösa det genom:

function klick() {
  statusbar("Vänta");
  for (...) {
    // ...
  }
  statusbar("Klar");
}

Men det verkar som att den visar "Klar" och sedan kör for-loopen?

För den som är nyfiken så loopar for-loopen igenom en array och placerar ut punkter på en Google Maps-karta.

noshorninMedlem sedan aug. 2008816 inlägg
#2

Det funkar för mig, hur ser funktionen statusbar() ut?

TerminalMedlem sedan juli 20103 inlägg
#3
      function statusbar(text) {
        document.getElementById("status").value=text;
      }

Kan det ha nåt med Google Maps metoder att göra? Så här ser min funktion ut:

      function showSignP() {
        statusbar("Punkterna laddas...");
        for (x in signPointsArray) {
          signPointsArray[x].setMap(map);
          signPointsLabelArray[x].show();
        }
        statusbar("Punkter färdigladdade.");
      }
136 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)