从网络方面检测
- 先确保网络连接顺畅
- 再检查
URL
地址是否错误 - 打开
控制台
查看是否有报错信息 - 查看
接口访问
是否有请求 - 查看
路由
是否有path错误
,导致加载了不存在的页面
从js和css方面检测
排除了 网络问题
以后,如果还是白屏,那一般都是 css和js
加载造成的;css和js
会造成阻塞渲染
。比如不正确的引入css和js
, 就会导致它们的加载速度过长,从而导致白屏现象。
正确的引入方式是:
- 在
<head>
标签中引入css
:因为在加载HTML
前不先渲染css
的话,整个页面会乱掉; - 在
</body>
标签之前、body
标签中html
内容的后面
,引入js
:因为浏览器加载script
标签时,处理内部代码的顺序都是从上到下
依次执行的,如果在html
内容前就引入js
的话,那么就会导致,在所有的代码处理完毕之前,会阻塞其他资源的加载;会导致页面的其他内容都无法显示,因此如果不规范引入js的话,会对页面的其他内容带来影响。
补充说明:
script
标签里可以添加async或defer
属性,如果不添加
这个属性,浏览器就会立即加载并执行
脚本;也就是在渲染script
标签之前,不等后续的文档加载前执行;他们的区别在于:
async
:加载和渲染后续文档元素的过程将和script.js
的加载与执行并行进步(异步)defer
: 加载后续文档元素的过程中和script.js
的加载与执行并行进步(异步)。但是script.js
的执行要在所有元素解析完成之后,DOMContentLoaded
事件触发之前完成。
defer
和async
在网络读取(下载)
方面是一样的,都是异步的
;区别在于脚本下载完成之后什么时候开始执行。