1
cat 2020-11-06 13:41:55 +08:00 via iPhone
看看 async / defer 属性
|
2
azcvcza 2020-11-06 13:54:58 +08:00
是我的话,可能就设置一个定时器去监听有没有加载好;搜了一下别人的解决方案,也有把尝试自己创建 script,利用自带的 document.readyState 回调,来接下去执行
|
3
kile 2020-11-06 13:59:04 +08:00
a.js 搞到本地不行?非要用外链?
|
4
youla 2020-11-06 14:07:27 +08:00
反向代理 a.js
|
5
fengpan567 2020-11-06 14:12:11 +08:00
3 楼说得对
|
6
Track13 2020-11-06 14:22:06 +08:00 via Android
超时后就自动 error 了吧。你是想要在设定时间内没有加载就跳过吧。
3 楼说的对 |
7
xiangyuecn 2020-11-06 14:23:15 +08:00
手动创建 script,script.onload 时执行和这个 js 相关的业务。加载不成功天然跳过
|
8
vision1900 2020-11-06 14:24:17 +08:00 1
白屏是因为下载和解析 JS 造成了 render blocking,浏览器会停止 DOM 的构建等着这 2 件事情完成
加个 defer 属性就完了,或者不放在 head 里,放到 body 最后 有时间可以看下浏览器渲染过程,反正以后面试也要被问到 |
9
learningman 2020-11-06 16:11:16 +08:00 via Android
ajax 然后 insert dom,设个 timeout
|
10
vvong 2020-11-06 16:13:54 +08:00
<script src="http://lib.sinaapp.com/js/jquery11/1.8/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="jquery1.8.min.js">\x3C/script>')</script> 应该是和 cdn 加载 jq 一样的道理吧 |
11
Curtion 2020-11-06 16:38:48 +08:00
如果 a.js 不重要的话用 defer 延迟加载。但是如果不重要为何不直接删了它呢,如果它有用不能删除的话那么提高网络稳定性来解决比较好。
|