Javascript代码执行延迟

Javascript code execution delayed

本文关键字:延迟 执行 代码 Javascript      更新时间:2023-09-26

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

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
}

因此,为了指示我的用户加载,我在函数调用开始时显示"请等待…"消息。但是此消息是在函数调用完全执行后显示的。

我的问题是为什么当我调用这个函数时,块的开始也会延迟。我将Jquery Tree块放在函数的底部。但是所有的代码是同时执行的。

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

在指定的延迟后调用函数或执行代码段。

<

来源/em>

第一个不包含setTimeout的块在单独的作用域中执行,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);
}