document.write('<scr'+'ipt src = vs <script src =

Den*_*tor 8 javascript

除了允许你在写入时将js变量插入到脚本标记中,就像document.write('<scr' + 'ipt src=这对普通<script src=>标记的优点/缺点一样?

我主要询问速度,但对整个故事感兴趣.

谢谢丹尼斯

SF.*_*SF. 9

没有必要'<scr'+'ipt'.有需要'<\/scr'+'ipt>'.因为HTML解释器不需要理解Javascript,所以它会将<script>...</script>文本之间的所有内容对待,并且不会关心var a='</script>';字符串文字Javascript,它会将其视为结束标记,<script>并将脚本文本的其余部分视为普通(错误的)HTML.

编辑:根据大卫的建议更正

  • 这也是错的.它应该是:`"<\/script>"`因为HTML解析器(至少正确实现HTML,即不是大多数Web浏览器)会将`</`视为结束标记. (4认同)
  • `"<\/script>"`不是`"<\/scr"+"ipt>"`.后者毫无意义,效率低下,难以阅读膨胀. (3认同)

hoj*_*erg 2

我认为这是为了获得非阻塞 javascript 加载。

为此,我建议查看 Steve Souders 关于该主题的帖子。 http://www.stevesouders.com/blog/2009/04/27/loading-scripts-without-blocking/

LABjs 库以一种非常巧妙的方式解决了这个问题。 http://labjs.com/

此外,似乎较新的浏览器开始默认并行加载 http://www.stevesouders.com/blog/2010/02/07/browser-script-loading-roundup/