json - javascript webservice call and settimeout -


i'm developing application relies on webservice calls in order create tree-like "menu", works intended realized not target audience has fast internet connection have right on development environment. goal show loading "screen" while javascript function creates , adds elements dom, flowchart follows:

  1. user click on "expand" image of node
  2. user sees div loading gif
  3. user presented childnodes

i'm not sure should put timeout

my code:

... elemento_tema_imagem_esconde_mostra.addeventlistener("click", get_feat); ...  function get_feat(event) {     tema_expandido = event.target.parentnode;       if (typeof (tema_expandido.getelementsbytagname("ul")[0]) === "undefined") {         smnid = event.target.parentnode.getelementsbytagname("a")[0].getattribute("mnid");          var service = new webjson;         service.getfeat(smnid, successcallback_get_feat, onfailurecallback_get_feat);      } else {          //debugger;         var elemento = tema_expandido.getelementsbytagname("ul")[0];         var imagem_esconder_mostar = elemento.parentnode.childnodes[0];         var style = window.getcomputedstyle(elemento, null);         if (style.display == "block") {             elemento.style.display = "none";             imagem_esconder_mostar.src = "content/images/img_abrir_22_22.png";         } else if (style.display == "none") {             elemento.style.display = "block";             imagem_esconder_mostar.src = "content/images/img_fechar_22_22.png";         }       }   };   function successcallback_get_feat(resultado_get_feat) {     var colleccao_feat = json.parse(resultado_get_feat);      var lista_feat = document.createelement("ul");     lista_feat.setattribute("class", "lista-sem-bullets");     (var = 0; < colleccao_feat.length; i++) {          var elemento_feat = document.createelement("li");         var elemento_feat_imagem_esconde_mostra = document.createelement("img");         var elemento_feat_imagem_no = document.createelement("img");         var elemento_feat_link = document.createelement("a");          if (colleccao_feat[i].filhos > 0) {             elemento_feat_imagem_esconde_mostra.src = "content/images/img_abrir_22_22.png";             elemento_feat_imagem_esconde_mostra.addeventlistener("click", get_compo);         } else if (colleccao_feat[i].filhos = 0) {             elemento_feat_imagem_esconde_mostra.src = "content/images/seta_dir_26_20.png";         }          //elemento_feat_imagem_esconde_mostra.addeventlistener("click", get_feat);          //elemento_feat_imagem_no.src = "content/images/feat.png"          elemento_feat_link.setattribute("fnid", colleccao_feat[i].fnid);         elemento_feat_link.innertext = colleccao_feat[i].namedesc;          elemento_feat.appendchild(elemento_feat_imagem_esconde_mostra);         elemento_feat.appendchild(elemento_feat_imagem_no);         elemento_feat.appendchild(elemento_feat_link);          lista_feat.appendchild(elemento_feat);     };      document.getelementbyid("mymodal_loading").style.display = "none";     tema_expandido.appendchild(lista_feat);     tema_expandido.childnodes[0].src = "content/images/img_fechar_22_22.png"; };  function onfailurecallback_get_feat(error) {     //displaying error on alert box         alert(error); }; 

any appreciated


Comments