什么,BOM指的是物料清单?

简介: 什么,BOM指的是物料清单?

📜个人简介

⭐️ 个人主页: 微风洋洋🙋‍♂️
🍑 博客领域:编程基础,后端
🍅 写作风格:干货,干货,还是tmd的干货
🌸 精选专栏【JavaScript】
🚀 支持洋锅:点赞👍、收藏⭐、留言💬

好久不见,甚是想念!
大家好!我是微风洋洋
芜湖,起飞🚀

昨天有个小老弟问我,BOM是什么?是不是物料清单?

他说他在一本书上看过, 我都惊呆了,BOM不是balabala嘛。我查了一下,物料清单的确是叫BOM (Bill of Material),看来隔行如隔山,闹了一个笑话。这不借着这个机会给大家复习/预习一波BOM。下次有人问你BOM是什么,就告诉他BOM就是balabala,不接受任何反驳。

一、什么是BOM对象

BOM:==Brower Object Model,指的是浏览器对象模型。==

作用:操作浏览器窗口及窗口上的控件,实现用户和页面的动态交互。

浏览器对象:浏览器提供的一系列内置对象的统称。

BOM浏览器对象模型:各内置对象之间按照某种层次组织起来的模型的统称。

在这里插入图片描述

  • document(文档对象):也称为DOM对象,是HTML页面当前窗体的内容,同时也是JavaScript重要组成部分之一。
  • history(历史对象):主要用于记录浏览器的访问历史记录,也就是浏览网页的前进与后退功能。
  • location(地址栏对象):用于获取当前浏览器中URL地址栏内的相关数据。
  • navigator(浏览器对象):用于获取浏览器的相关数据,例如浏览器的名称、版本等,也称为浏览器的嗅探器。
  • screen(屏幕对象):可获取与屏幕相关的数据,例如屏幕的分辨率等。

📌注意

BOM没有一个明确的规范,所以浏览器提供商会按照各自的想法随意去扩展BOM。而各浏览器间共有的对象就成为了事实上的标准。不过在利用BOM实现具体功能时要根据实际的开发情况考虑浏览器之间的兼容问题,否则会出现不可预料的情况。



二、location对象

🍅更改URL

URL:==Uniform Resource Locator,统一资源定位符。==

在Internet上访问的每一个网页文件,都有一个访问标记符,用于唯一标识它的访问位置,以便浏览器可以访问到,这个访问标记符称为URL。

在这里插入图片描述

由于80是Web服务器的默认端口号,因此可以省略URL中的“:80”


location对象提供的用于改变URL地址的方法,所有主流的浏览器都支持。

在这里插入图片描述

reload()方法的唯一参数,是一个布尔类型值,将其设置为true时,它会绕过缓存,从服务器上重新下载该文档,类似于浏览器中的刷新页面按钮。


举个例子👇

效果

在这里插入图片描述

代码实现💡


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>更改URL</title>
    </head>
    <body>
    <input type="button" value="载入新文档" onclick="newPage()">
    <input type="button" value="刷新页面" onclick="freshPage()">
    <p id="time"></p>
    <script>
    // 获取并显示当前页面载入的时间
    var ds = new Date(), d = ds.getDate();
    var t = ds.toLocaleTimeString();
    document.getElementById('time').innerHTML = t;
    // 载入新文档
    function newPage() {
    window.location.assign('http://www.example.com')
    }
    // 刷新文档
    function freshPage() {
    location.reload(true);
    }
    </script>
    </body>
    </html>


🍅获取URL参数

Web开发中,经常通过URL地址传递的参数执行指定的操作,如商品的搜索,排序等。此时,可以利用location对象提供的search属性返回URL地址中的参数。

在这里插入图片描述

获取URL的指定部分:location.属性名

设置URL的指定部分:location.属性名 = 值

在这里插入图片描述



🍅【案例】定时跳转

在这里插入图片描述

代码实现思路

① 编写定时跳转的HTML页面。

② 获取指定的秒数,并减1写入页面。

③ 当秒数大于0时,利用setTimeout()循环倒计时。

④当秒数小于等于0时,利用location.href跳转到指定的URL地址中。


代码实现💡


    <!doctype html>
    <html>
    <head>
    <title>Example Domain</title>
    
    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
    background-color: #f0f0f2;
    margin: 0;
    padding: 0;
    font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    
    }
    div {
    width: 600px;
    margin: 5em auto;
    padding: 2em;
    background-color: #fdfdff;
    border-radius: 0.5em;
    box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
    color: #38488f;
    text-decoration: none;
    }
    @media (max-width: 700px) {
    div {
    margin: 0 auto;
    width: auto;
    }
    }
    </style>
    </head>
    
    <body>
    <div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
    </div>
    </body>
    </html>



三、history对象

  • history对象可对用户在浏览器中访问过的URL历史记录进行操作。
  • 出于安全方面的考虑,history对象不能直接获取用户浏览过的URL,但可以控制浏览器实现“后退”和“前进”的功能。

在这里插入图片描述

  • go()方法可根据参数的不同设置,完成历史记录的任意跳转。当参数值是一个负整数时,表示“后退”指定的页数;当参数值是一个正整数时,表示“前进”指定的页数。
  • 当go()方法的参数为1或-1时,与forward()和back()方法的作用相同。


举个例子👇

效果

在这里插入图片描述

代码实现💡


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>历史记录跳转</title>
    </head>
    <body>
    <input type="button" value="前进" onclick="goForward()">
    <input type="button" value="新网页" onclick="newPage()">
    <script>
    function newPage() { // 打开一个新的文档
    window.location.assign('show.html');
    }
    function goForward() { // 前进
    history.go(1);
    }
    </script>
    </body>
    </html>



四、navigator对象

navigator对象提供了有关浏览器的信息,主流浏览器中存在的属性和方法如下。

在这里插入图片描述

在这里插入图片描述



五、screen对象

screen对象用于返回当前渲染窗口中与屏幕相关的属性信息,如屏幕的宽度和高度等。以下展示主流浏览器中支持的screen属性。

在这里插入图片描述


如果觉得这篇文章对你有一丢丢启发的话,不妨 点赞👍、收藏⭐、留言💬支持一下,你的支持将是我继续创作的最大动力❤️❤️❤️

由于作者水平有限,如有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!

if (学会了){
点个赞,给个好评,我祝福您学啥会啥;
}else{
收藏后,慢慢学习,我相信您定能学会;
}
相关文章
|
4月前
|
人工智能 弹性计算 机器人
阿里云gpu云服务器包年包月和按量活动,丰富多样的GPU卡型和规格
阿里云推出GPU优惠活动,提供多样GPU卡型与弹性算力,助力AI应用落地。包括96GB显存+900GB/s NVLink的大规模模型推理卡型,及L20 GPU的轻量高效部署选项,满足不同场景需求。支持包年包月、按量付费等灵活计费模式,结合vLLM框架快速部署大模型,提升推理速度与吞吐量。此外,无影GPU云电脑企业版及百炼大模型调用服务,为用户提供高性价比算力,轻松开启AI新时代。
|
6月前
|
人工智能 边缘计算 监控
宠物识别算法在AI摄像头的应用实践:从多宠识别到行为分析
基于边缘计算与轻量化AI模型,本方案实现多宠家庭中宠物个体识别、行为分析与健康监测。通过端云协同架构,在本地完成实时识别(延迟&lt;50ms),保障隐私同时支持8只宠物同屏追踪。结合多模态特征与行为模式,准确率超98%,可联动喂食器、猫砂盆等设备,为宠物提供个性化智能照护,适用于家庭、托管中心及医疗场景,推动智能养宠迈向精准化、生态化发展。
1166 4
|
3月前
|
人工智能 前端开发 Java
毕设交付方式对比:自己写、找代写还是用AI生成器?
计算机毕设面临“时间紧、要求严、能力弱”三重压力。本文对比自写、代写与AI生成三种方式,指出:在教育部抽检新规下,**合理使用AI生成器(如智码方舟)+ 自主修改优化**,是兼顾效率(几小时出框架)、合规(符合GB/T 7713规范)与能力提升的最优解。
|
3月前
|
人工智能 弹性计算 搜索推荐
无需 GPU!纯 CPU 跑通 AI 自动化:OpenClaw + 百炼 API 实测
无需GPU!纯CPU即可部署AI自动化工具OpenClaw,结合阿里云百炼API,支持轻量应用服务器、无影云电脑、ECS三种环境,9.9元起一键搞定。三步完成:选环境→装配置→赋任务,轻松打造专属AI助理。(239字)
507 3
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
算法 搜索推荐
数据结构与算法学习十八:堆排序
这篇文章介绍了堆排序是一种通过构建堆数据结构来实现的高效排序算法,具有平均和最坏时间复杂度为O(nlogn)的特点。
688 0
数据结构与算法学习十八:堆排序
|
SQL 数据挖掘 Serverless
SQL 窗口函数简直太厉害啦!复杂数据分析的超强利器,带你轻松攻克数据难题,快来一探究竟!
【8月更文挑战第31天】在数据驱动时代,高效处理和分析大量数据至关重要。SQL窗口函数可对一组行操作并返回结果集,无需分组即可保留原始行信息。本文将介绍窗口函数的分类、应用场景及最佳实践,助您掌握这一强大工具。例如,在销售数据分析中,可使用窗口函数计算累计销售额和移动平均销售额,更好地理解业务趋势。
634 0
|
前端开发 图形学
|
设计模式 前端开发 Java
MVC到底是设计模式还是软件架构?
MVC到底是设计模式还是软件架构?
664 0
|
数据采集 传感器 监控
半导体芯片制造行业MES系统解决方案
半导体产业作为现代电子科技的重要支柱,驱动着电子设备和通信技术的飞速发展。随着技术不断演进,半导体制造企业面临着越来越多的挑战,如高度复杂的工艺流程、全球化的竞争、质量控制的要求以及能源效率等问题。
730 0

热门文章

最新文章