怎么找html代码js的位置,html文件里引用js文件一般放在什么位置才是最适合?

题目:

放在HTML里的哪一部分JavaScripts会在页面加载的时候被执行?

A. 文件头部位置

B. 文件尾

C .

标签部分

D .

标签部分

想要知道js文件在html中的加载解析执行情况?首先必须要先清晰了解——DOM文档加载步骤

DOM文档加载步骤:

解析html结构;

加载外部脚本和样式表文件;

解析并执行脚本;

dom树构建完成(触发DOMContentLoaded和 jquery ready事件);

加载图片等外部文件;(会触发图片load事件)

页面加载完毕。(触发load事件)

注意:凡是没有绑定加载事件(如:window.onload、$(document).ready())的js文件中的代码,在本文件(代码)加载完成后立即解析执行。

js可以由于内外部、是否由绑定加载事件(如:load、ready)触发执行、在html文档中的位置,分为多种情况。而且执行运行情况又不一样。所以有必要了解。

不同类js代码解析运行区别:

6171d432b78d?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=weibo

1504256859(1).jpg

栗子

index.html

Title

//1.外部引入js文件outer1.js

//2.内部head标签内代码段

console.log("(head无绑定加载事件) " + document.getElementById("image") + ", run at:" + (new Date().getTime() - startTime));

a9fde92fd432faa87db87832dd87cf11.png

id="image" alt="落日原图">

//3.外部引入js文件outer2.js

//4.绑定window.onload的内部代码

window.onload = function () {

console.log("window.load! run at:" + (new Date().getTime() - startTime));

}

//5.内部body标签内代码段

document.addEventListener("DOMContentLoaded", function(event) {

console.log("DOMContentLoaded:DOM fully loaded and parsed, run at :" + (new Date().getTime() - startTime));

});

console.log("inner js(body无绑定加载事件), run at:" + (new Date().getTime() - startTime));

console.log("(inner body无绑定加载事件)" + document.getElementById("image") + " run at:" + (new Date().getTime() - startTime));

document.getElementById("image").onload = function () {

console.log("img loaded (body绑定图片加载事件), loaded at:" + (new Date().getTime() - startTime));

}

outer1.js

//outer1.js

//引入位置:head中

var startTime = new Date().getTime(); //为后面记录代码开始执行时间提供标准

console.log("outer1 js (head)! run at(ms):" + (new Date().getTime() - startTime));

outer2.js

//outer2.js

//引入位置: body后

console.log("outer2 js (body)! run at:" + (new Date().getTime() - startTime));

运行结果

6171d432b78d?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=weibo

result.png

分析:

首先,每个语句后面时间以ms为单位。此时间是,以outer1.js中var startTime = new Date().getTime();语句执行时作为0时刻(起始时间)来区别其他js输出语句执行时间。

然后,特地选较大的图片,更明显看出

再次,通过控制台查看各文件加载情况:好像除了index.html页面最先加载之外,其他外部css、js文件的随机加载解析,并没有一定顺序。取决于进入加载队列的时间。

6171d432b78d?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=weibo

1504257209(1).jpg上述js代码无绑定加载事件时,本人猜测是在步骤4才执行,因为DOM TREE构建完成,理由在下面例子中js语句console.log(document.getElementById("image"))和console.log("DOMContentLoaded:DOM fully loaded and parsed....)两者打印时间判断,但是又觉得不大合理。求大神告知,为何DOMContentLoaded反而后执行?

小结:

题目有误,除非特地指明“页面加载的时候”指的仅仅是加载body部分(但我觉得这个理解不OK)。不然的话,head里面的js代码段只要没绑定了load、ready等事件,在DOM文档加载过程中都会加载、解析、执行。如上例,不管是head(代码段1,2),还是body(代码段3,5);不管是外部还是内部,一样会执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这取决于这段代码的具体功能和用途。一些通用的建议如下: - 如果这段代码是用来控制网页上的交互和动态效果的,那么一般会放在 JavaScript 文件。 - 如果这段代码是用来定义网页的结构和内容的,那么一般会放在 HTML 文件。 - 如果这段代码是用来控制样式和布局的,那么一般会放在 CSS 文件。 - 如果这段代码是用来处理服务器端逻辑的,那么一般会放在后端语言(如 PHP、Python、Java 等)的文件。 需要注意的是,网页开发经常使用的是 HTML、CSS 和 JavaScript 三种语言相结合的方式,因此在实际应用,这些代码往往会分别放在不同的文件,并且相互调用和引用。 ### 回答2: 这段代码的存放位置会根据代码的功能和需要来决定,以下是对不同类型代码应该放在哪个文件的一些建议: 1. HTML代码HTML代码主要用于构建网页的结构和内容,例如定义页面标题、段落、链接等。通常将HTML代码放在以`.html`或`.htm`为后缀的文件,比如`index.html`。在这个文件,可以使用标签和属性来描述网页的结构。 2. CSS代码:CSS代码主要用于添加样式和布局,例如设置字体、颜色、边距等。一般将CSS代码放在以`.css`为后缀的文件,比如`styles.css`。在HTML文件,可以使用`<link>`标签将CSS文件链接到网页,让网页应用这些样式。 3. JavaScript代码:JavaScript代码主要用于实现网页的交互和动态效果,例如验证表单、展示动画等。JavaScript代码可以放在HTML文件的`<script>`标签,也可以将JavaScript代码单独放在以`.js`为后缀的文件,比如`script.js`。通过在HTML文件使用`<script>`标签,将JavaScript文件引入,使其能够被网页调用和执行。 需要注意的是,较小的代码段可以直接放在HTML文件内,但如果代码较多或多个文件需要共享代码,则更好将其封装在独立的CSS或JavaScript文件,以提高代码重用性和维护性。另外,也可以使用外部库或框架,如jQuery、React等来管理和组织代码。最终的决策应基于项目的要求和最佳实践。 ### 回答3: 这段代码的存放位置要根据代码的功能和用途来决定。一般来说,HTML文件主要用于定义网页的结构和内容,而JavaScript文件用于实现网页的交互和动态效果。 如果这段代码是用于控制网页的交互和动态效果,例如按钮点击事件、表单验证等,那么应该将代码放在JavaScript文件。在HTML文件通过引入JavaScript文件来调用这段代码,使用<script>标签来引入外部的.js文件。 如果这段代码是用于定义网页的结构和内容,例如网页标题、文本、图片等,那么可以将代码直接放在HTML文件代码可以写在<head>或<body>标签内,用于定义网页的结构和内容元素。 需要注意的是,为了代码的可维护性和可读性,也可以将代码根据功能进行模块化,将交互和动态效果的代码放在一个或多个.js文件,将结构和内容的代码放在HTML文件或者另外的.css文件进行样式定义。这样可以更好地组织和管理代码,提高代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值