当前位置: 首页 > 面试题库 >

JavaScript-头,主体还是jQuery?

叶允晨
2023-03-14
问题内容

这个问题只是为了澄清一些事情。之前曾有人问过类似的事情,这使它们都变成一个问题-
JavaScript在HTML文档中应该放在哪里,或更重要的是,这有关系吗?所以,我要问的一件事是

<head>
<script type="text/javascript">
alert("Hello world!");
</script>
</head>

在功能上完全不同于

<body>
<!-- Code goes here -->
<script type="text/javascript">
alert("Hello world!");
</script>
</body>

更重要的是,我想关注以任何方式修改或使用DOM元素的JS。所以我知道,如果您在身体中放置类似document.getElementById("test").innerHTML = "Hello world!"before的东西<element id="test"></element>,那将无法正常工作,因为身体是从顶部到底部加载的,首先进行JS加载,然后将继续尝试操作不起作用的元素存在。因此,就像上面一样,它应该<head>放在</body>标记中或之前。问题是,除了组织和分类之外,选择其中之一是否重要,如果选择的话,以什么方式?

当然,还有第三种方法-jQuery方法:

$(document).ready(function(){ /*Code goes here*/ });

这样,将代码放置在主体中的位置无关紧要,因为只有在所有内容加载完毕后才会执行。这里的问题是,
使用一种可以通过准确放置脚本来代替需要的方法,导入一个巨大的JS库是否值得?我想在这里整理一下内容,如果您想回答,请继续!简介:不同类型的脚本应该放在哪里-
头部或正文,和/或有关系吗?jQuery仅为就绪事件值得吗?


问题答案:

当您将脚本放入<head>标记中时,浏览器会继续使用它们,从而使其他内容保持不变,直到加载脚本时,用户会感觉页面加载缓慢。这就是为什么您应该将脚本放在底部。

至于:

$(document).ready(function(){/*Code goes here*/});

当DOM可用并准备好进行操作时会触发该事件。如果你把你的代码在最后,你不一定会因为你想做一些事情需要这个,但通常这是需要 尽快 DOM可供使用。



 类似资料:
  • 我正在尝试通过xmlhttprequest或jqueryajax通过跨服务器发送文件,这两种方式似乎都是将文件发送到我的dev服务器,在那里我有一个php将比特流保存为docx格式。 问题是,当我将它发送到我的客户机服务器时,它们会得到0字节。奇怪的是…当我用邮递员发送文件的时候,效果很好。下面是我读取和发送文件的代码。 我还可以获取发送到服务器的数据。我客户的开发人员说的是我需要在POST BO

  • 问题内容: 有什么理由代替括号表示法吗? 问题答案: 现在,括号表示法可在所有主要浏览器上使用,但IE7及以下版本除外。 出于以下原因,使用方括号曾经是个坏主意: 此表示法在IE7中不起作用。 第一个代码段将在IE7中返回undefined。如果您碰巧对代码中的字符串使用括号表示法,并且想要迁移到,这是一个真正的痛苦:在代码中都使用了括号,并且没有简单的方法来检测是针对字符串还是数组/。宾语。 您

  • 我使用的是Hibernate4,启用了惰性加载。我有一个包含对其他对象的引用的基本实体。下面是一个简单的例子: 当我从数据库加载Employee实体时,boss对象由一个Hibernate代理对象表示,这是由于延迟加载的原因。稍后我需要访问boss属性,该属性可能在加载它的同一会话中,也可能不在同一会话中。如果我尝试使用boss对象,但它还没有加载,而我处于不同的位置,我将得到以下错误: 我真的想

  • 问题内容: 我正在寻找一些关于JavaScript何时按值传递值,何时按引用传递,何时修改传递的项目影响函数外部值以及何时不传递值的良好综合阅读材料。我还对何时通过引用与按值分配给另一个变量以及是否遵循除作为函数参数传递以外的任何其他规则进行分配感兴趣。 我已经进行了很多搜索,找到了很多具体的示例(其中很多都在SO上),可以从这些示例中整理出一些真实的规则,但是我还没有找到一个写得很好的文档来描述

  • 这是我写一个html页面,我现在想要让右边刷新,导航栏不刷新。或者是整体刷新。 导航栏的代码: 对应页面被注释包裹,然后替换上去的代码 脚本: 做的尝试: 整体刷新:使用gulp inject的命令,我单独写了页头,导航栏,页脚的页面,每当我想要修改的时候,我就只修改单独的这些页面,然后执行gulp inject命令,然后gulp就会根据我页面中的特定注释包裹的地方替换掉对应的代码。 确实可以,不

  • 问题内容: 我有一个枚举类型类: 如您在上面看到的,我定义了一种具有value的类型。它包含一个特定于常数的主体。在其主体中,我尝试调用 ,但出现编译错误: 无法静态引用非静态方法printMe()。 为什么会出现此错误?我的意思是我在体内重写了一种抽象方法。为什么在范围内?如何摆脱它? 我知道在上添加关键字可以解决问题,但是我想知道是否还有其他方法可以保持非静态状态吗? 另一个问题,与上面的问题