簡體   English   中英

JavaScript代碼執行延遲

[英]Javascript code execution delayed

我在點擊事件上調用了以下函數。 基本上,由於我要觸發jquery樹上的click事件,因此該代碼需要一些時間(大約200毫秒)才能在瀏覽器上執行。

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分隔執行。

在指定的延遲后調用函數或執行代碼段。

資源

執行不帶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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM