JavaScript----BOM模組,定時器
技術標籤:筆記javascript定時器bom
BOM模組:
首先我們先知道什麼是BOM?
BOM物件:瀏覽器物件模型,BOM部分主要是針對瀏覽器的內容,其中常用的就是window物件和location,提供了一些獨立於內容頁面與瀏覽器視窗進行互動的物件介面,它的核心是window物件,window是全域性物件很多關於瀏覽器的指令碼設定都是通過它。
BOM也是由一系列相關的物件組成,並且每個獨享都提供了很多方法和屬性,但是BOM缺少標準化,JS的語法的標準化是ECMA組織提出的,DOM的標準化組織W3C,BOM最初始Netscape瀏覽器標準的一部分。
之前我們也學習了DOM我們來看看這兩者有什麼區別吧:
DOM | BOM |
---|---|
文件物件模型 | 瀏覽器物件模型 |
DOM將文件當做一個物件來處理 | BOM的頂級物件是window |
主要學習的是對頁面元素的操作 | 學習的是瀏覽器視窗互動的一些物件 |
DOM是W3C標準規範 | 是瀏覽器廠家在格子瀏覽器上定義的規範 |
window頂級物件是JS訪問瀏覽器視窗的一個介面,window是一個全域性變數,宣告所有的全域性變數,全域性方法函式最終都是window物件的屬性或者方法
視窗載入事件的兩種寫法:
1.window.onload = function () { }
2.window.addEventListener ("load",function(){ })
文件載入事件:window.addEventListener("DOMContentLoaded",function(){ }
定時器:
1.setTimeout();
定時炸彈計時器:使用時指定一個時間,知道事件一到直接執行繫結的事件,只會執行一次
window.setTimeout(function(){
alert("hello");
},3000)
第一個引數:事件所執行的函式
第二個引數:延遲的時間,時間間隔以毫秒為單位
停止計時器:window.clearTimeout(計時器識別符號)
2.serInterval();
鬧鐘定時器使用時指定一個時間段,然後每隔這個時間段都會呼叫一次執行函式,哪怕第一次執行函式也會等待一個時間段後才執行
window.setInterval (function(){
console.log("hello");
},1000);
引數同上
停止計時器:window.clearInterval(計時器識別符號)
練習:每秒輸出一個數字
var i = 0;
window.setInterval(function () {
console.log(i);
i++;
},1000);
location物件:
window物件給我們提供了一個location屬性,這個物件主要用於獲取或設定窗體的url地址,並且可以用於解析url
URL:
同一資源定位符(Uniform Resource Location)是網際網路上的標準資源地址,網路所有的資料都以檔案形式儲存,每個檔案在網路世界中都有一個唯一的URL,它包含的資訊指出檔案的所在位置及瀏覽器的處理方式
port:埠號可選,如果省略使用的是預設的埠,http預設的埠號是 80
path:路徑由0個或多個"/"+檔案地址等組成,表示主機上的檔案地址目錄
屬性:
- href:獲取或設定一個url
- host:返回主機(域名)
- port:返回埠號,如果未寫返回空字串
- pathname:返回路徑
- search:返回引數,URL引數是指URL地址中網址之後的?以後
- hash:返回片段,URL中#後面的內容
方法:
- assign():和href一樣,可以跳轉頁面,重定向跳轉
- replace():替換當前頁面,不記錄入歷史中,所以不能後退頁面
- reload():重新載入頁面,相當於重新整理按鈕,如果引數為true相當於強制重新整理
navigation物件:
navigation物件主要是記錄有關瀏覽器的資訊,常用的屬性userAgent,這個屬性可以返回由客戶端傳送至伺服器的user-agent頭部的值
history物件:
window物件為提供的一個history物件來進行與瀏覽器的歷史記錄進行互動
- back():實現瀏覽器後退功能
- forward():實現瀏覽器的前進功能
- go(引數):前進後退功能,引數如果是1前進一個頁面,如果是-1後退一個頁面,如果是N則前進或後退N個頁面