<script> use </script>的效果

时间:2012-02-28 22:22:54

标签: javascript

所以我一直在为一个客户建立一个网站很长一段时间,他们每页都有几个javascript操作。所以我决定流式传输这一代javascript材料(包括ajax内容,ui操作和解析)。所以我在PHP中有一个脚本生成器,它将按特定的顺序生成脚本,这样就不会有进行尚未准备好的操作的风险*

然后我陷入了这个奇怪的小难题。生成这样的脚本是否有效率......

<script type="text/javascript">
    script1.action();
    script1.secondAction();
    script2.action();
    ...
    scriptN.action();
</script>

<script type="text/javascript">script1.action()</script>
<script type="text/javascript">script1.secondAction()</script>
<script type="text/javascript">script2.action()</script>
<script type="text/javascript"> ... </script>
<script type="text/javascript">scriptN.action()</script>

感谢您的投入。

* Obviously there can always be some inherent risk no matter how "Safe" you try to program.

3 个答案:

答案 0 :(得分:1)

无论哪种方式,标签和内容都将按顺序执行 - 无需担心。

然而,如果可能的话,最好选择第一个选项。每次浏览器到达标签时,它都会停止呈现,直到有时间将代码交给javascript解释器并获得结果。

除非您有许多不同的脚本或非常大的脚本,否则任何最终用户都不会注意到此延迟。正如詹姆斯所提到的那样,它也会导致加载时间稍慢,服务器负载更重,因为它的字符更多。

答案 1 :(得分:0)

更多字符=文件大小越大=加载时间越慢。

分别解析标签可能会有轻微的开销。

绝对采用第一种方法。

答案 2 :(得分:0)

似乎您的问题是过度使用内联脚本标记。

当浏览器遇到标记时,它会解析文本,在标记之间,将文本发送到浏览器javascript引擎,等待输出返回并继续。因此,从理论上讲,增加脚本标签的数量会增加您的加载时间,但对您而言,这是多么微不足道或重要,是否值得为修复工作更难?

就个人而言,我无法应对知道我的浏览器做得比应有的更多的压力。除了html难以维护的事实,请阅读。我反对在同一页面上耦合javascript和html。

简单的解决方案:将脚本生成为.php文件,并将其作为脚本包含在主页上。