Wykonanie funkcji po wykonaniu innej funkcji

0

W moim kodzie mam funkcję która wykonuje dużo operacji. Przed wywołaniem tej funkcji zmieniam zawartość pewnego diva na tekst "ładowanie":

 document.getElementById("jakisDiv").innerHTML = "ładowanie" 

następnie wywołuje funkcję wykonującą dużo operacji:

 app.myFunction(params) 

Problem polega na tym, że treść diva podmienia się dopiero po wykonaniu tej czasochłonnej funkcji. Jak temu zaradzić by najpierw zaktualizował się widok divu potem odpaliła się funkcja.

0

zrobiłem też tak:

 
$("#yourFilters img").bind('click',function(){
      app.coss( app.loadOwnFilter($(this).attr("name"))); 
    })  

app.coss = function (callback) {
    document.getElementById('test').value = "ładowanie";
    callback && callback();
}


i nadal to samo

0
 $("#yourFilters img").bind('click',function(){
      $.when(app.coss()).then(app.loadOwnFilter($(this).attr("name")))
    })  

app.coss = function () {
    document.getElementById('test').value = "ładowanie";
}

to również nie działa

0

Na forum są znaczniki <code class="javascript"></code> - używaj ich

loadOwnFilter rozumiem zwraca funkcję?

Kod wygląda w miarę ok, sądzę więc, że błąd leży gdzieś indziej - no ale wkleiłeś jakiś fragmencik, którego my nie możemy uruchomić więc ciężko o porady.

$("#yourFilters img").bind('click',function(){
  console.log('click');
  document.getElementById('test').value = "ładowanie";
  console.log('podmiana');
  var filter = app.loadOwnFilter($(this).attr("name"));
  console.log('filtr', filter);
  app.cos(filter); 
});
 
app.coss = function (callback) {
    callback && callback();
}

Choć w tym przypadku traci sens ta funkcja coss, bo filter możesz wywołać i w handlerze clicka.

1

Uruchom kolejną porcję kodu w setTimeout(), co pozwoli na zwrócenie na chwilę sterowania do wątku, który odmaluje stronę.

0

Działa ŁF, działa :) Zrobiłem to wcześniej przed Twoją podpowiedzią, ale kto mi w to uwierzy :P. Temat uważam za zamknięty

1 użytkowników online, w tym zalogowanych: 0, gości: 1