繁体   English   中英

将 javascript 放入文件和脚本标签有什么区别?

[英]What is the difference in putting a javascript in a file and in a script tag?

HTML 文件中的以下两个代码有什么区别? 如果我在包含xyz.js abc.js那么在使用脚本时是否有任何关联的优先级?

第一个代码:

<script src="js/abc.js" type="text/javascript" language="javascript"> </script>

第二个代码:

<script language="javascript">
        /*same code of abc.js*/ 
</script

主要区别在于 javascript 文件可以被浏览器和网络设备缓存,因此用户不必在每次页面加载时都下载它。

因此,如果您有 100k 的 javascript 文件,您的访问者只需下载一次。 否则,他们必须在每次页面加载和访问时下载完全相同的 100k。

这也适用于内联和外部 CSS 和图像!!

当然,这只是缓存和浏览器性能的冰山一角(史蒂夫的书是 web 的“圣经”之一):

http://yuiblog.com/blog/2006/11/28/performance-research-part-1/

http://www.yuiblog.com/blog/2007/01/04/performance-research-part-2/

http://www.stevesouders.com/

HTML 文件中的以下两个代码有什么区别?

一个需要额外的 HTTP 请求,但会被缓存。 另一个没有。

如果我在包含 abc.js 之后再添加一个 javascript 文件 xyz.js,在使用脚本时是否有任何优先级?

加载外部脚本被阻塞。 第一个将首先加载。 然后将加载第二个。

它们都使浏览器读取 javascript 并执行它。 第一个代码可以利用缓存,而后者缓存。

第一个用例还需要另一个 HTTP 请求,这可能代价高昂。

否则没有优先权。

从文件加载脚本和从脚本标签运行脚本的第一个区别是加载需要额外的 HTTP 请求。 这通常是微不足道的,但是通过将脚本嵌入到页面中可以提高速度。 但是,从外部文件加载确实允许缓存脚本。 不过,您似乎不能依赖缓存

现在,我应该告诉你,将所有脚本硬编码在页面上并不是很容易管理。 如果您想更新其中一个脚本,但它与特定的 html 文件相关联,则更新变得更加困难。

至于你的第二个问题,脚本是按顺序加载的。 在加载脚本时,所有外部加载都被阻止。 因此,建议将所有脚本包含在<body>标记的底部。

除了缓存的主要原因之外,第二个重要的区别是关注点分离的维护,除其他外,在 web 开发中,标记(html)应该与样式(css)和行为( js)。 这些元素应该保存在不同的位置,并且只链接到标记中。 这对于项目组织、持续维护和优化非常重要。 用内联的一切编写乱七八糟的意大利面条代码会让你变成一只悲伤的熊猫

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM