什么时候在html中包含javascript与在external.js中包含javascript比较合适



在html中有标签似乎并不罕见,但将所有js都放在外部文件中,然后在html中引用,这不是更整洁吗?它的应用程序不同吗?有大量的行链接到大量的js文件会更混乱吗?

嵌入JavaScript

  • Pro:不需要额外的HTTP请求,因此可能会更快地进行初始加载
  • 缺点:无法独立于HTML缓存JavaScript,因此在连续访问时可能不需要下载代码
  • Con:(与前一点有关)所有的JavaScript代码可能每次都必须下载,因为HTML文件通常不会缓存(但这可能取决于您的服务器设置)
  • 缺点:无法在HTML页面之间共享代码

外部JavaScript文件

  • Pro:可以独立于其他资源缓存JavaScript文件
  • Pro:可以在多个HTML页面上共享JavaScript代码
  • 缺点:外部JavaScript文件越多,模式下的HTTP请求就越多,加载页面所需的时间就越长(至少在第一次加载时)。这可以通过将JavaScript文件捆绑在一起来减轻。例如,将长期缓存中不经常更改的文件捆绑到一个文件中,并将所有文件捆绑到另一个文件

两者都有效,下面是外部文件的一些优点和缺点。。。

优点:

  1. 您可以划分代码。当您可能有一个主要的JavaScript文件,然后用一些小的JavaScript来做不同的不相关的事情时,这尤其有用

  2. 它使版本控制更容易

  3. 通过将代码放在单独的文件中,更容易准确地找到某个位是的位置

缺点:

  1. 外部文件意味着更多的文件请求,降低的速度

  2. 整个文件可能不需要小的代码位

  3. 通过内联,可以更容易地准确控制脚本何时执行

请注意,对于需要在页面末尾执行的脚本(如在末尾</body>标记之前放置<script>),您可以使用以下内容:

<script src="myscript.js" defer></script>

就我个人而言,我通常更喜欢将代码放在单独的文件中,因为我发现它更容易管理,但请参阅上面的利弊,以便做出决定。

这取决于含义,您希望优化速度。例如,如果您有一些页面需要轻量级javascript,那么使用一些<script>...</script>标记会比使用外部文件快得多。

另一方面,如果你有很多复杂的算法/过程需要在多个页面上完成,那么从外部文件获取信息会更容易提高页面的性能和加载速度,而不是让页面加载你需要的数百行代码。

实际取决于应用程序的大小。

  • 几行代码?把它放在脚本标记之间
  • 小项目?引用外部文件是可以的
  • 更大/生产水平?您需要一个模块捆绑器-查找webpack

根据我的小经验,人们过去常常将HTML和JS分离。最近有一项将它们结合在一起的举措。我认为他们将它们分开是因为关注点的分离,但HTML和JS并不是真正不同的"关注点";HTML是名词,JS是动词。这一举措至少在一定程度上得益于模板文字。

因此,要回答你的问题,什么时候合适,这将是非常有主见的,但我可以看到一个HTML和JS总是结合在一起的世界,只要文件大小小且易于管理,生活就会很好。

除了前面提到的所有内容外,还有两种情况下我使用内联<script>标记。只有当我找不到替代方案或替代方案很麻烦时,我才会这样做。

一种情况是,我需要根据php代码的评估设置一个javascript变量。例如,当数据发生更改时,页面刷新-我设置了Javascript"脏"标志,这样,如果用户试图退出页面而不保存,我可以发出警告:

if ($dataHasChanged){
echo "<script>dirtyFlag.value = true;</script>";
}

另一个例子是在iframe中运行php代码时,我希望返回php代码的结果(要么返回到父元素,要么设置javascript变量):

$result = updateDb($data);
if ($result === false) {
echo "<script> document.write( parent.document.getElementById('status').innerHTML = 'Error')</script>";
}

最新更新