等待页面加载直到方法完成

Waiting with page load until method finished

我的网页的Javascript在加载网页时正在执行下面显示的代码。调用 get 可能需要几秒钟,因此我想等待调用完成后再加载页面。

是否可以将页面加载推迟到调用 get 完成?或者甚至更好的方法是显示一些纺车(而不是白页),以便用户知道某些过程正在进行中。这可能吗?

document.addEventListener("DOMContentLoaded", function(){
    if (!sessionStorage.getItem("userID")) {
        // Get new userID
        $.get("/new_user").done(function (data) {
            sessionStorage.setItem("userID", data);
        });
    }
});

我不确定您使用事件侦听器“DOMContentLoaded”的实现是否正确,我认为我们在这里缺少一些上下文,您可以在此之前检查会话存储,但我假设这部分是更正并解决您关于加载微调器的问题。

此外,我不会详细介绍如何制作负载微调器,因为那里有很多示例..但就让您的页面成为负载微调器而您的 ajax 调用是 运行 我会让函数异步并在调用之前将页面的 html 设置为加载微调器,然后在等待调用之后设置数据然后设置 html完成加载后你想要的样子

document.addEventListener('DOMContentLoaded', async (event) => {
        if (!sessionStorage.getItem("userID")) {
            document.getElementById('container').innerHTML = '<div>loadspinnerhtml</div>';
            var data = await $.get("/new_user")
            sessionStorage.setItem("userID", data);
            document.getElementById('container').innerHTML = '<div>theloadedhtml</div>'
        }
  });