2017-10-26 82 views
7

Z jakiegoś powodu utknąłem z tym „rzeczy”jQuery/JavaScript odczytu lokalnego pliku tekstowego

Jak widać Chcę spróbować odczytać count.txt. To działa doskonale, ale z jakiegoś powodu

alert(code); 

zbliża się po

alert("The number can't be smaler then 0"); 

Dla mnie to nie ma sensu, ponieważ Nazwałbym alertu (licznik) przed z alert ("Numer ...") Jakieś pomysły, dlaczego funkcja jQuery (alert) jest wywoływana po drugim alarmie?

function leftFunction() { 
    jQuery.get('count.txt', function(data) { 
     var count = data; 
     alert(count); 
    }); 
    scrolling = true; 
    if(number == 0) { 
     alert("The number can't be smaler then 0"); 
     return; 
    } 
    number--; 
    document.getElementById("myImage").src = "latest" + number + ".jpg"; 
} 
+6

To jest podobne do bycia sync/asynchroniczny. Sprawdź to: https://stackoverflow.com/questions/27012556/make-synchronous-function-in-javascript –

+2

['jQuery.get()'] (http://api.jquery.com/jquery.get/) funkcja zwrotna jest asynchroniczna _ "Jeśli żądanie jest już zakończone, wywołanie zwrotne jest natychmiast uruchamiane." _ – guest271314

+0

Dziękuję za pomoc mi :) –

Odpowiedz

3

Jak informuje Red Fx w komentarzach, jest to związane z asynchronicznym JavaScript. Spróbuj coś takiego zamiast:

function leftFunction() { 
    jQuery.get('count.txt', function(data) { 
     var count = data; 
     alert(count); 
    }).done(function() { 
     scrolling = true; 
     if (number == 0) { 
      alert("The number can't be smaler then 0"); 
      return; 
     } 
    }); 
    number--; 
    document.getElementById("myImage").src = "latest" + number + ".jpg"; 
} 

referencyjny: https://api.jquery.com/jquery.get/

+0

Wielkie dzięki za opis :) –