5

我一直在建一个网站。在某个阶段,我注意到 IE 显示有点损坏,Chrome 只呈现了 body 标签(空),而且 FF 看起来都不错。

在把我的键盘扔到房间里并用头撞我的鼠标之后,我发现了这个问题。我留下了(不要问如何或为什么,一定是一些闪电般的剪切和粘贴错误)在内联脚本块中未关闭的 HTML 注释。

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

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

4

9 回答 9

9

不,编写不显眼的 Javascript

于 2009-06-30T15:02:21.083 回答
4

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

在某些情况下,您包含来自 3rd 方提供商的 Javascript,而您实际上别无选择。某些广告系统,以及谷歌分析,浮现在脑海中。

于 2009-06-30T15:02:47.807 回答
2

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

于 2009-06-30T15:03:07.507 回答
2

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

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

于 2009-06-30T15:06:15.943 回答
0

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

于 2009-06-30T15:04:04.293 回答
0

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

于 2009-06-30T15:05:01.560 回答
0

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

于 2009-06-30T15:08:55.797 回答
0

拥有许多外部脚本最终会减慢页面速度,因为浏览器必须分别调用每个文件。将 JavaScript 合并到一个文件或页面本身有时可以缓解这个问题。

另一方面,我相信浏览器可能会在第一次调用脚本文件时缓存它,所以如果您的网站上有很多相同的代码,那么外部是要走的路。

于 2009-06-30T15:21:08.643 回答
0

我在称为 Flex 的东西上做了很多工作,它结合了 XML 和 ActionScript 来创建最终的字节码。最好的做法是尽可能将两者分开。这样,您可以非常清晰、轻松地将视图(在我的例子中是 HTML 或 MXML)与控制器(脚本)分开

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

于 2009-06-30T15:24:51.880 回答