javascript webservice调用和settimeout

时间:2015-07-17 10:54:14

标签: javascript json web-services settimeout setinterval

我目前正在开发一个依赖于Web服务调用的应用程序,以便创建一个类似树状的菜单,所有内容都按预期工作,但我意识到并非所有目标受众都拥有快速的互联网像我现在在开发环境上的连接。我的目标是显示一个加载"屏幕"当javascript函数创建然后将元素添加到DOM时,流程图如下:

  1. 用户点击"展开"节点的图像
  2. 用户看到div loading gif
  3. 向用户显示childnodes
  4. 我不知道应该把暂停放在哪里

    我的代码:

    ...
    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");
        for (var i = 0; i < 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);
    };
    

    任何帮助将不胜感激

0 个答案:

没有答案