首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >js可以等到XHR完全加载到HTML中吗

js可以等到XHR完全加载到HTML中吗
EN

Stack Overflow用户
提问于 2020-07-07 04:39:06
回答 2查看 78关注 0票数 1

我是新手设计的网站HTML与引导

我发现HTML不支持html include,所以我在googled上找到了非常棒的js,它让我可以单独管理header.html并导入到主html中。

我使用的是header.html需要的另一个js。

我发现js在header.html XHR完全完成之前就开始了,所以它不适用于导入的header.html。

所以这里我需要问的是,有没有什么方法可以让js等待XHR,这是从另一个完全加载的js中调用的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-07 09:49:45

您可以在页面加载完成时使用类似于jQuery中的$.ready的函数来调用函数,但我推荐使用这个简单的waitUntilReady函数而不是jQuery:

代码语言:javascript
复制
<script>

  const checkElement = () => console.log(
    'div#checkIfLoaded:',
    document.getElementById('checkIfLoaded')
  );
  
  const waitUntilReady = (fn) => document.readyState === 'complete'
    // fire immediately if document ready
    ? fn()
    // otherwise fire on DOMContentLoaded
    : window.addEventListener(
        'DOMContentLoaded', 
        fn
    );
  
  // doesn't exist yet
  checkElement();
  
  // will wait until the page is loaded
  waitUntilReady(checkElement);
  
</script>
<div id="checkIfLoaded"></div>

票数 0
EN

Stack Overflow用户

发布于 2020-07-07 05:46:53

在JavaScript中,您需要理解的最重要的概念是异步和同步代码。你可以做这样的事情。

代码语言:javascript
复制
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      // Do something
    }
  };
  xhttp.open("GET", "another.html", true);
  xhttp.send();

我不推荐这种方法,因为有很多更好、更简单的选择:Link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62764155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档