有没有什么好的理由让javascript成为内联

时间:2009-06-30 15:00:32

标签: javascript html scripting inline

我一直在建网站。在某个阶段,我注意到IE显示有点坏了,Chrome除了身体标签(空)外几乎没有任何东西,而且FF看起来都很好。

把我的键盘扔到房间里,把头撞在我的鼠标上后,我发现了问题。我已经离开了(不要问怎么或为什么,一定是闪电般的速度削减和粘贴错误)在内联脚本块中未公开的HTML注释。

<script type="text/javascript">
        <!--
        ...
    </script>

我猜测(未经测试)如果脚本是外部的,问题可能要么没有出现,要么以更加明显的方式表现出来。所以无论如何,我开始思考,有没有时间你有一个很好的理由来编写内联脚本?

9 个答案:

答案 0 :(得分:9)

没有。写Unobtrusive Javascript

答案 1 :(得分:4)

如果您希望Javascript尽早运行,可能有意义包含内联Javascript,因为它将在任何其他HTTP请求必须完成之前运行。

在某些情况下,您包含来自第三方提供商的Javascript,而您实际上没有选择权。我想到了某些广告系统以及Google Analytics(分析)。

答案 2 :(得分:2)

如果必须动态生成脚本(例如,通过PHP或ASP.NET MVC页面),那么将其内联的原因之一是: - )

答案 3 :(得分:2)

取决于你打算写多少JS。如果您正在编写许多支持例程(许多验证检查,文本处理,动画和效果),那么将代码放在单独的文件中是有意义的。这允许代码重用并从HTML页面中删除大量垃圾。

另一方面,不需要在单独的文件中放置10行代码或单个函数(刷新JS)。它的加载速度会稍微快一些,因为浏览器不需要另外发出HTTP请求来下载单独的JS文件。

答案 4 :(得分:0)

大多数XSS漏洞只能使用内联javascript来利用。

答案 5 :(得分:0)

这不一定是理由,但页面加载速度会更快。为此,有时,即使您在另一个文件中编写脚本,您也希望它在客户端显示为内联。

答案 6 :(得分:0)

我有时会在部分重新加载的页面中放置javascript内联(例如,将某些事件绑定到新添加的表单字段)和/或使用我不会在任何其他页面上使用的某些唯一javascript的页面。

答案 7 :(得分:0)

由于浏览器必须单独调用每个文件,因此拥有许多外部脚本最终会降低页面速度。将JavaScript组合到一个文件或页面本身有时可以缓解这个问题。

另一方面,我相信浏览器可能会在第一次调用脚本文件后对其进行缓存,因此,如果您的网站上有很多相同的代码,那么外部就可以了。

答案 8 :(得分:0)

我在一个名为Flex的东西上工作很好,它结合了XML和ActionScript来创建最终的字节码。尽可能将 始终 最佳实践分开。这样,您可以非常清晰,轻松地将View(我的情况下为HTML或MXML)与Controller(脚本)分开

这也意味着您不必担心查找一行代码的五个文件 - 您的所有代码都在一个地方。