首页 > 技术文章 > Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

djd66 2021-09-13 09:05 原文

web worker 是运行在后台的 JS,不会影响页面的性能。

什么是 Web Worker?web worker 是运行在后台的 JS,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。

真实情况:我们根本无需增加思想负担。了解什么work、新的api、和多线程消息机制等!我们解决它,只需要遵循以下2点一般就可以解决

1.AJAX 请求 变为异步:这也是ajax默认方式,不然用ajax也失去了本质意义,同步很少。async: false // 轻轻方式-异步

2.接受的请求,返回一个html代码段,里面包含了<script src="/scripts/script.js"></script>这样脚本文件引用! 才会出现这种警告!

<div></div>
<script src="/scripts/script.js"></script> 

备注:这样的情况很多,比如你要请求一段html 用于局部刷新显示到页面,或者请求后台模版,而这段html里 还有<script scr="xx.js"></script> 引用,就会出险上述警告(单纯的警告,但是看着也不爽)

解决办法:依据第二点

1.请将 <script src="/scripts/script.js"></script> 提前写入前台页面,从发送过来的HTML 代码段剥离出去,亲测有效!国外网友也是这样总结!

2.将引用的外部js脚本文件,写到dom里面

<script type="text/javascript">
console.log('I am out of js context,now we use script tag to insert into html');//就是将原来外部JS文件中的代码直接贴到HTML文件中,我是这么解决的,毕竟只是局部用没有按照方法一去做
</script>

总之:如果请求HTML代码段或者HTML模版,不要直接引入外部js的方式就可以,有很多技巧,大家自行发挥,还要2种方式可以解决;想好了给我留言 哈哈哈!

提示你:此法可完美hold住,又不耽误继续引用外部js脚本,吼吼吼!

$.getScript('jsUrl', function() {
  // console.log(jsUrl[i] + " loaded...");
});  

来自:https://blog.csdn.net/weixin_41697143/article/details/105397215

 

推荐阅读