Javascript 代码执行延迟

标签 javascript jquery treeview

我在点击事件上调用了下面的函数。 基本上这段代码需要一些时间(大约 200 毫秒)在浏览器上执行,因为我在 jquery 树上触发了 click 事件。

function showAsset()
{
      $(".err").html("Please wait . . .")
      $(".err").css('display','block')
      $(".err").css('background','orange')
      v=$("#asset_details").val()
      v=v.split("###")
      v1=v[0].split("-")
//Upto this block should be executed first

      //Jquery Tree block starts
      $("#navigation ."+v1+" div").click()
      $("#navigation ."+v[1]+" div").click()
      $("#navigation table tr:contains('"+v[0]+"')").css({'background':'#FFF82A'})
       $('html, body').animate({
        'scrollTop' :( $("#navigation table tr:contains('"+v[0]+"')").position().top-5)
    });
       //Jquery Tree block ends
}

因此,为了向我的用户介绍此加载,我显示“请稍候......”函数调用开始时的消息。 但此消息是在函数调用完全执行后显示的。

我的问题是为什么当我调用此函数时 block 的开始也会延迟。 我将 Jquery Tree block 放置在函数的底部。但整体代码是同时执行的。

有什么办法可以分开这个执行吗?

最佳答案

您可以使用 setTimeout 来分隔执行。

Calls a function or executes a code snippet after a specified delay.

source

执行第一个没有 setTimeout 的 block ,并在 setTimeout 之后在单独的作用域中执行。

function showAsset() {
  $(".err").html("Please wait . . .")
  $(".err").css('display', 'block')
  $(".err").css('background', 'orange')
  v = $("#asset_details").val()
  v = v.split("###")
  v1 = v[0].split("-")
    //Upto this block should be executed first

  //Jquery Tree block starts

  setTimeout(function() {
    $("#navigation ." + v1 + " div").click()
    $("#navigation ." + v[1] + " div").click()
    $("#navigation table tr:contains('" + v[0] + "')").css({
      'background': '#FFF82A'
    })
    $('html, body').animate({
      'scrollTop': ($("#navigation table tr:contains('" + v[0] + "')").position().top - 5)
    });
    //Jquery Tree block ends
  }, 0);
}

关于Javascript 代码执行延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33236774/

相关文章:

javascript - 另一个网站/跨域上的元素的Xpath

javascript - CSS 目标选择器

javascript - 将 jQuery parseXml 限制为一定数量的循环

c# - WPF TreeView 和目录树数据绑定(bind)

angularjs - 在 Angular.js 中使用 HTML 表的嵌套/ TreeView

javascript - Google 标签管理器 - 获取 javascript 变量中元素的父级

javascript - Ajax问题: delay in getting data from web service using innerHTML,请指导

jquery - 无法下载最近创建的文件

javascript - 在新选项卡中打开 iframe,如果 iframe 页面使用 _parent 目标

c# - 如何将 SelectedNodeChanged 事件添加到 winform TreeView ?