项目需要在页面加载的时候显示正在加载的信息,由于网络太快,无法看到效果,请各位帮忙看看写的JS是否正确啊
<body>
<div id="loading"></div>
</body>
document.onreadystatechange = function () {
if (document.readyState == "complete") {
console.log("加载完成!")
$("#loading").html('')
}else{
$("#loading").append(`<div class="spinner-border text-info">正在加载数据</div>`)
}
}
你的代码有几个地方有问题
修改后的代码如下,望采纳!
<body>
<div id="loading"></div>
</body>
<script>
let timer = setInterval(() => {
if (document.readyState == "complete") {
clearInterval(timer)
$("#loading").html('')
} else {
$("#loading").append(`<div class="spinner-border text-info">正在加载数据</div>`)
}
}, 200)
window.onload = () => {
clearInterval(timer)
$("#loading").html('')
}
</script>
网速快, 你就给你的js里添加一个sleep,让它多停留一会,然后看结果对不对
在开发者工具里把网速调到3g,网速就慢了
对于浏览器来说,我们先认识两个引擎: render(渲染)引擎 和 js 引擎
1. render引擎通过编译源码 =>
解析dom =>
处理css(同解析dom一块执行) => 通过算法 =>
虚拟dom => 进行layout布局(绘制和排版) =>
生成真实dom树 => 在页面上展示
2. js引擎
负责加载你的源代码 =>
把它分解成字符串(又叫做分词)=>
把这些字符串转换成编译器可以理解的字节码 =>
执行这些编译后的字节码