4

我几乎是网络开发的新手,我正面临着 Javascript/jQuery。我想了解如何在 html 页面中执行脚本。我是一名 C/Java 程序员,对这些语言的引用可以帮助我。我知道如果我们想在页面加载后执行脚本,可以在标题或正文末尾插入脚本。我知道一个函数可以被一个 DOM 事件调用(我将事件与中断信号相关联)。我想知道的是如果这样的脚本:

<script type="text/javascript">
//<![CDATA[
var i=10;
if (i<5)
  {
  // some code
  }
//]]>
</script>

在 body 或 head 元素中只执行一次或连续执行。jQuery 的行为方式是否与 Javascript 相同?插件呢?它们是在页面显示的所有时间内都存在(如并行线程)还是事件驱动(通过单击/调整大小等或使用计时器来调用它们)?我知道这是一个非常普遍的问题,可能无法用几行来解释,但非常感谢一些基本解释和一些文档的链接。

谢谢!

4

4 回答 4

5

jQuery 只是一个用 JavaScript 编写的库,主要简化 DOM 操作和处理 AJAX 请求。如果您想了解 JS 的工作原理,请暂时忘记 jQuery。

关于脚本执行:浏览器解析 HTML 并从中创建一个 DOM。当浏览器遇到<script>标签及其内容时,它会为其创建一个 DOM 元素,将其添加到树中并执行代码。然后它继续解析下一个标签,这意味着代码只执行一次。
在解析期间执行脚本的原因是脚本已经可以立即操作 HTML(使用,例如document.write(虽然不是很好的做法)),因此会更改解析器必须解析的内容。可以使用defer属性推迟脚本执行,直到文档被完全解析(尽管直到现在我还没有经常在实时代码中看到该属性)。

所有script标签共享相同的范围,全局范围和执行环境一直存在,直到您离开或重新加载页面。因此,在一个脚本中定义一个变量并在另一个脚本中访问它是完全有效的,事实上,当您在页面中包含诸如 jQuery 之类的库时,您正在执行此操作。

<script>
    var foo = 'bar';
</script>
<!-- other HTML code -->
<script>
    alert(foo);
</script>

您可能会发现关于s的HTML 文档script很有帮助。

于 2013-01-10T01:24:05.277 回答
3

该脚本将自上而下执行一次,就像您在页面中加载的任何其他内容一样。但是,加载的一部分将是与 DOM(文档对象模型,或浏览器的网页内部表示)交互,包括注册事件处理程序等;之后的点击、AJAX 响应等事件可以触发 JS 函数。

如果您习惯于 Java UI 开发,那么您会熟悉回调和基于事件的编程;如果您习惯于程序编码,那么这将是一个学习曲线。

于 2013-01-10T01:18:26.987 回答
2

上面的代码只会执行一次。

jQuery 是基于 javascript 的,当然,它的行为方式与 javascript 相同。jQuery 使 javascript 更容易,并且还处理特定于浏览器的问题。

如果像您的示例中那样编写 Javascript 代码,它将在运行时执行,但它也可能是事件驱动的。在您刷新浏览器页面之前,代码结果的生命周期将一直存在。如果您使用计时器,javascript 的生命周期也可能是连续的。

于 2013-01-10T01:20:22.280 回答
1

有些脚本只是创建函数和对象,以后可以被事件调用,有些脚本实际上是在页面加载时对 DOM 做一些事情,有些脚本只是注册监听器。

jQuery 和他们的插件只是创建对象/函数,稍后可以由事件处理程序调用。

于 2013-01-10T01:37:52.280 回答