document.write("<scr"+"ipt language=javascript src=http://l.yimg.com/d/lib/bc/bc_2.0.4.js></scr"+"ipt>");
实在他有点摸不着头脑,这真能加速??如下图来自某博客 https://www.orcode.com/question/327157_kbce2c.html
https://cway.top
这个和速度无关系,这一段代码的重点是为什么要把script字符串给拆成拼接的方式,原因是浏览器的HTML解析器看见</script>的时候会把这个误认,而解析器又无法分辨这是HTML标记还是JS代码。
你看的博客在乱说,不可信,即使真的有速度差异也是因为换了书写顺序/缓存等其它原因造成的。 红米K30 Pro 变焦版
@hik,楼上的解释是正确的,你可以参考这篇文章 《Using In A JavaScript Literal》 https://wls.wwco.com/blog/2007/04/25/using-script-in-a-javascript-literal/ 白日梦还是要做的
你如果直接写:
<script> alert("</script>"); </script>
浏览器会理解为:
<script> 标签开始 alert(" js代码 </script> 标签结束 "); 普通文本 </script> 标签结束(找不到开头的结束标签)
为了避免这种问题我们把标签拆开来写:
也可以参考一下百度的动态插入 script 标签加载 js:
script
js
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?xxxxxxxxxxxxxx"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
白日梦还是要做的
@Curtion,看来葫芦林每天都能学习新知识,@老虎会仰泳,你这样说也对,避免script标签混肴,之前我就想直接用script标签就行,干嘛还多此一举在外面包层document.write, 现在想应该是出于业务需要而进行判断加不加载这个js吧 https://cway.top
@hik,我说的就是和@Curtion,是同一个意思,就是多写了点代码。 白日梦还是要做的
这个和速度无关系,这一段代码的重点是为什么要把script字符串给拆成拼接的方式,原因是浏览器的HTML解析器看见</script>的时候会把这个误认,而解析器又无法分辨这是HTML标记还是JS代码。
你看的博客在乱说,不可信,即使真的有速度差异也是因为换了书写顺序/缓存等其它原因造成的。
红米K30 Pro 变焦版
@hik,楼上的解释是正确的,你可以参考这篇文章 《Using In A JavaScript Literal》 https://wls.wwco.com/blog/2007/04/25/using-script-in-a-javascript-literal/
白日梦还是要做的
你如果直接写:
浏览器会理解为:
为了避免这种问题我们把标签拆开来写:
也可以参考一下百度的动态插入
script
标签加载js
:白日梦还是要做的
@Curtion,看来葫芦林每天都能学习新知识,@老虎会仰泳,你这样说也对,避免script标签混肴,之前我就想直接用script标签就行,干嘛还多此一举在外面包层document.write, 现在想应该是出于业务需要而进行判断加不加载这个js吧
https://cway.top
@hik,我说的就是和@Curtion,是同一个意思,就是多写了点代码。
白日梦还是要做的