JavaScript-DOM、BOM、脚本

简介: DOM、BOM、脚本

壹--了解JavaScript

1、什么是DOM

文档对象模型(DOM, Document Object Model),是一个应用变成接口(API)。这是书上的定义。拥有DOM,可以把一个页面的各个节点,变成一个树形的结构。

<html>

   <head>

       <title>一个简单的页面</title>

   </head>

   <body>

       <p> Hello World!</p>

   </body>

</html>

通过DOM可以表示为:

01.png

DOM 通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。  DOM映射网页的结构,开发者想要修改网页内容时,就可以通过DOM进行查找,更有规律。

由于DOM自身的优点十分受用,DOM也被其他语言实现了。但是对于浏览器来说,DOM就是通过ECMAScript实现的,是JavaScript的重要组成部分。

2、什么是BOM

浏览器对象模型(BOM),用于支持访问和操作浏览器的窗口。使用 BOM,开发者可以操控浏览器显示页面之外的部分。而 BOM 真正独一无二的地方,当然也是问题最多的地方,就是它是唯一一个没有相关标准的 JavaScript 实现。

BOM 主要针对浏览器窗口子窗口( frame)。不过人们通常会把任何特定于浏览器的扩展都归在 BOM 的范畴内。  比如:

  1. 弹出新浏览器窗口的能力  
  2. 移动、缩放和关闭浏览器窗口的能力
  3. navigator 对象,提供关于浏览器的详尽信息  
  4. location 对象,提供浏览器加载页面的详尽信息  
  5. screen 对象,提供关于用户屏幕分辨率的详尽信息  
  6. performance 对象,提供浏览器内存占用、导航行为和时间统计的详尽信息  
  7. 对 cookie 的支持

BOM长时间都没有一个统一的标准,每个浏览器都有自己的标准。

3、小结

JavaScript是一门用来与网页进行交互的脚本语言(Node.js使得JavaScript语言可以与服务器交互

  • ECMAScript:由 ECMA-262 定义并提供核心功能  
  • 文档对象模型( DOM):提供与网页内容交互的方法和接口  
  • 浏览器对象模型( BOM):提供与浏览器交互的方法和接口  


贰--HTML中的JavaScript

1、通过<script>标签引入JavaScript文件或插入JavaScript代码块

<script> 标签一般使用两个属性,src和type。

src:可选。表示包含要执行的代码的外部文件

type:可选。一般情况下这个值始终都是"text/javascript"。如果是非IE浏览器有效值还有:"application/javascript"和"application/ecmascript"  

行内嵌入JavaScript代码:

<script>

   functionsayHi() {

       console.log("Hi!");

   }

</script>

包含在<script>内的代码会被从上到下解释 。

在使用行内 JavaScript 代码时,要注意代码中不能出现字符串</script>。比如,下面的代码会导致浏览器报错:  

<script>

   functionsayScript() {

       //浏览器解析时,会把"</script>"与上面的<script>进行匹配,从而结束

       console.log("</script>");

   }

</script>

//想避免这个问题,只需要转义字符“\”即可

<script>

   functionsayScript() {

       console.log("<\/script>");

   }

</script>

若是要使用外部文件的JavaScript,就必须要包含src属性。这个属性的值是一个路径,一般是js文件的地址。

<scriptsrc="jq.js"></script>

使用了 src 属性的<script>元素不应该再在<script></script>标签中再包含其他JavaScript 代码。否则,浏览器只会执行scr所指向的文件,而不会执行标签内的js代码。

2、推迟执行脚本

HTML 4.01为<script>定义了一个新的属性——defer。这个属性表示,脚本会被推迟到所有页面加载完成后才执行。所以,在设置defer属性后,就相当于告诉浏览器,这个脚本你先慢慢下载着,等其他页面都出来之后再执行这个脚本。这样的话,不会出现下载脚本过慢,从而导致浏览器长时间出现空白。

但是,在HTML5中,脚本的执行是按照从上到下依次执行的。第二个推迟的脚本会在第一个推迟的脚本后面执行。

<!DOCTYPE html>

<html>

   <head>

       <title>Example HTML Page</title>

       <scriptdefersrc="example1.js"></script>  

       <scriptdefersrc="example2.js"></script>

   </head>

   <body>

       <!-- 这里是页面内容 -->

   </body>

</html>

3、异步执行脚本

<script>添加属性async。功能和用法与defer类似,不同的点在于带有async属性的脚本不会按照一定的顺序执行,第二个脚本可能会先执行,也可能会后执行。

<!DOCTYPE html>

<html>

   <head>

       <title>Example HTML Page</title>

       <scriptasyncsrc="example1.js"></script>

       <scriptasyncsrc="example2.js"></script>

   </head>

   <body>

       <!-- 这里是页面内容 -->

   </body>

</html>


12-4.jpg

相关文章
|
19天前
|
缓存 JavaScript UED
js中BOM中的方法
【10月更文挑战第31天】
|
21天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
30天前
|
缓存 编解码 JavaScript
DOM 和 BOM 在项目中应用时的性能优化方法
【10月更文挑战第19天】总之,优化 DOM 和 BOM 的性能需要综合考虑多个方面,通过合理的设计和技术手段,提升项目的运行效率和用户体验。在实际开发中,要不断地进行性能优化实践,以适应不断变化的需求和技术发展。
|
30天前
|
JavaScript 安全 物联网
DOM 和 BOM 在项目中的应用
【10月更文挑战第19天】在现代网页开发和应用项目中,DOM(文档对象模型)和 BOM(浏览器对象模型)扮演着至关重要的角色。它们为开发者提供了与网页文档和浏览器环境进行交互的能力,使项目能够实现丰富的功能和用户体验。
|
30天前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
2月前
|
XML 缓存 JavaScript
提升对前端的认知,不得不了解Web API的DOM和BOM
该文章强调了在前端开发中理解和掌握DOM(文档对象模型)和BOM(浏览器对象模型)的重要性,并介绍了它们的相关操作和应用。
提升对前端的认知,不得不了解Web API的DOM和BOM
|
2月前
|
XML 移动开发 JavaScript
js中BOM和DOM总结(基础篇)
文章总结了JavaScript的BOM和DOM知识点,包括window、screen、location、history、navigator对象,以及消息框、计时器和cookie。同时,介绍了DOM的概念、节点获取和修改方法,以及事件处理。
js中BOM和DOM总结(基础篇)
|
1月前
|
JavaScript 前端开发 Java
【前端基础篇】JavaScript之BOM介绍
【前端基础篇】JavaScript之BOM介绍
39 0
|
2月前
|
JavaScript 前端开发
用JavaScript脚本将当地时间转换成其它时区
用JavaScript脚本将当地时间转换成其它时区
|
2月前
|
JavaScript 前端开发 API
Javaweb之javascript的BOM对象的详细解析
BOM为Web开发提供了强大的API,允许开发者与浏览器进行深入的交互。合理使用BOM中的对象和方法,可以极大地增强Web应用的功能性和用户体验。需要注意的是,BOM的某些特征可能会在不同浏览器中表现不一致,因此在开发过程中需要进行仔细的测试和兼容性处理。通过掌握BOM,开发者能够制作出更丰富、更动态、更交互性的JavaWeb应用。
31 1