javascript - 在 JavaScript 中加载

标签 javascript json load loading

我有一个 Javascript 函数,看起来像这样......

function loadInventory() {
  var json = [<?php echo $_SESSION['inventory']; ?>];

  for(var i = 0; i < json.length; i++) {
    var obj = json[i];
    for(var key in obj.rgDescriptions) {
      document.getElementById('userInventory').innerHTML += '<div class="col-sm-4"><div style="background-color: #2e2e2e;">'+obj.rgDescriptions[key].market_hash_name+'</div></div>';
      document.getElementById('loader').classList.remove('loader');
    }
  }
}

显然,这个功能需要几秒钟才能完成,这不是问题。

但是,我想在运行该函数之前完全加载页面,因为页面有一个加载动画,一旦添加 HTML,该动画就会在 loadInventory() 中删除。

我尝试过这样做...

$(document).ready(function() {
  $(window).load(function() {
    loadInventory();
  });
});

但是效果似乎不太好。该函数在页面完全加载之前运行,因此您看不到加载动画。

结论:

我想完全加载页面。完成后,我想运行 loadInventory() ,这将向页面添加更多 HTML。

抱歉,搞得一团糟,这真的很难解释!

最佳答案

使用setTimeout()推迟运行该函数。

$(document).ready(function() {
    setTimeout(loadInventory, 1);
});

由于setTimeout通过事件循环异步运行该函数,因此只有在加载页面的所有同步操作完成后才会调用该函数。

关于javascript - 在 JavaScript 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44731171/

相关文章:

javascript - 使用 jQuery 或 vanilla javascript 获取此 url 字符串中的数字的最佳方法是什么?

python json dumps 将对象放入 row_to_json 返回的对象中

ios - 如何多次使用 JSON 对象?

Java 使用扫描仪加载 ArrayList 的 ArrayList

node.js - 使用nodejs和mongoDB作为后端数据进行延迟加载

jquery - 使用ajax之类的加载

javascript - jquery 鼠标事件不适用于 anchor 标记

javascript - React 组件的数据存储

javascript - Document.createElement ("br") 无法多次调用 appendChild

ios - 如何使用 JSONModel 解析带有未知键的 json