摘要:在這個(gè)階段屬性值是當(dāng)解析器遇到?jīng)]有和屬性的元素時(shí),它把這些元素添加到文檔中,然后執(zhí)行行內(nèi)或外部腳本。這些腳本會(huì)同步執(zhí)行,并且在腳本下載如果需要和執(zhí)行時(shí)解析器會(huì)暫停。解析器恢復(fù)時(shí)這些文本會(huì)成為文檔的一部分。瀏覽器在對(duì)象上觸發(fā)事件。
1 客戶端JavaScript
window對(duì)象自身也有一個(gè)名為window的屬性,指向window對(duì)象
window.window.window.location.pathname;2 在HTML里嵌入JavaScript 2.1 script元素
在XHTML中使用JavaScript,則需要放到一個(gè)CDATA部分:
2.2 腳本類型
把type屬性設(shè)置為瀏覽器不能識(shí)別的值,即可在html頁面中嵌入任意文本內(nèi)容。
2.3 URL中的JavaScript(避免使用)
javascript:協(xié)議限定符
可以用void操作符強(qiáng)制函數(shù)調(diào)用或給表達(dá)式賦予undefined值
它被當(dāng)做一個(gè)多帶帶的一行代碼對(duì)待,語句之間必須用分號(hào)隔開。
w time ist?
書簽
書簽就是一個(gè)保存起來的URL。如果書簽是javascript:URL,那么保存的就是一小段腳本,叫做bookmarklet。只要書簽不返回值,它就可以操作當(dāng)前顯示的任何文檔。
3 JavaScript程序的執(zhí)行 3.1 同步、異步和延遲的腳本script標(biāo)簽可以有defer和async屬性,可以改變腳本的執(zhí)行方式。這些屬性只在和src屬性聯(lián)合使用時(shí)才有效:
async 屬性規(guī)定一旦腳本可用,則會(huì)異步執(zhí)行。async 屬性僅適用于外部腳本(只有在使用 src 屬性時(shí))。
defer 屬性規(guī)定是否對(duì)腳本執(zhí)行進(jìn)行延遲,直到頁面加載為止。
3.2 客戶端JavaScript時(shí)間線Web瀏覽器創(chuàng)建Document對(duì)象,并開始解析Web頁面,解析html元素和它們的文本內(nèi)容后添加Element對(duì)象和Text節(jié)點(diǎn)到文檔中。在這個(gè)階段documen.readystate屬性值是“l(fā)oading”
當(dāng)HTML解析器遇到?jīng)]有async和defer屬性的script元素時(shí),它把這些元素添加到文檔中,然后執(zhí)行行內(nèi)或外部腳本。這些腳本會(huì)同步執(zhí)行,并且在腳本下載(如果需要)和執(zhí)行時(shí)解析器會(huì)暫停。這樣腳本就可以用documen.wrte()來把文本插入到輸入流中。解析器恢復(fù)時(shí)這些文本會(huì)成為文檔的一部分。同步腳本經(jīng)常簡(jiǎn)單定義函數(shù)和注冊(cè)后面使用的注冊(cè)時(shí)間處理程序,但他們可以遍歷和操作文檔樹,因?yàn)樵谒麄儓?zhí)行時(shí)已經(jīng)存在了。這樣,同步腳本可以看到它自己的script元素和它們之前的文檔內(nèi)容。
當(dāng)解析器遇到設(shè)置了async屬性的script元素時(shí),它開始下載腳本文本,并繼續(xù)解析文檔。腳本會(huì)在它下載完成后盡快執(zhí)行,但是解析器沒有停下來等它下載。異步腳本禁止使用document.write()方法。它們可以看到自己的script元素和它之前的所有文檔元素,并且可能或干脆不可能訪問其他的文檔內(nèi)容。
當(dāng)文檔完成解析,document.readyState屬性變成“interactive”。
所有有defer屬性的腳本,會(huì)桉它們?cè)谖臋n里的出現(xiàn)順序執(zhí)行。異步腳本可能也會(huì)在這個(gè)時(shí)間執(zhí)行。延遲腳本能訪問完整的文檔樹,禁止使用document.write()方法。
瀏覽器在Document對(duì)象上觸發(fā)DOMContentLoaded事件。這標(biāo)志著程序執(zhí)行從同步腳本執(zhí)行階段轉(zhuǎn)換到事件驅(qū)動(dòng)階段。但要注意,這時(shí)可能還有異步腳本沒有執(zhí)行完成
這時(shí),文檔已經(jīng)完全解析完成,但是瀏覽器可能還在等待其他內(nèi)容載入,如圖片。當(dāng)所有這些內(nèi)容完成載入時(shí),并且所有異步腳本完成載入和執(zhí)行,document.readyState屬性改變?yōu)椤癱omplete”,Web瀏覽器觸發(fā)Window對(duì)象上的load時(shí)間。
從此刻起,會(huì)調(diào)用異步事件,以異步響應(yīng)用戶輸入事件、網(wǎng)絡(luò)事件、計(jì)時(shí)器過期等。
4 兼容性和互用性 4.1 功能測(cè)試常見的功能測(cè)試:
if (element.addEventListener) { element.addEventListener("keydown", handler, false); element.addEventListener("keypress", handler, false); } else if (element.attachEvent) { element.attachEvent("onkeydown", handler); element.attachEvent("onkeypress", handler); } else { element.onkeydown = element.onkeypress = handler; }4.2 怪異模式和標(biāo)準(zhǔn)測(cè)試
document.compatMode屬性,如果為"CSS1Compat",則是在標(biāo)準(zhǔn)模式,如果在"BackCompat或undefined",則是在怪異模式。
4.3 瀏覽器測(cè)試早前通常需要做瀏覽器測(cè)試,即使用Navigator對(duì)象。
4.4 IE里的條件注釋IE中的條件注釋(Conditionalcomments)對(duì)IE的版本和IE非IE有優(yōu)秀的區(qū)分能力,是WEB設(shè)計(jì)中常用的hack方法。
條件注釋只能用于IE5以上。
gt :greater than,選擇條件版本以上版本,不包含條件版本
lt : lessthan,選擇條件版本以下版本,不包含條件版本
gte :greater than or equal,選擇條件版本以上版本,包含條件版本
lte :less than or equal,選擇條件版本以下版本,包含條件版本
! : 選擇條件版本以外所有版本,無論高低
使用方法:
您使用不是Internet Explorer
您正在使用InternetExplorer version 6或者一個(gè)非IE 瀏覽器
IE的JavaScript解釋器也支持條件注釋:
/*@cc_on @if(@_jscript) alert("You are using Internet Explorer"); @else*/ alert("you are not using Internet Explorer"); /*@end @*/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/79177.html
摘要:二服務(wù)端渲染初體驗(yàn)使用的服務(wù)端渲染功能,需要引入提供的服務(wù)端渲染模塊,其作用是創(chuàng)建一個(gè)渲染器,該渲染器可以將實(shí)例渲染成字符串。 詳解Vue服務(wù)端渲染 一、服務(wù)端渲染 - 簡(jiǎn)介 所謂服務(wù)端渲染就是將代碼的渲染交給服務(wù)器,服務(wù)器將渲染好的html字符串返回給客戶端,再由客戶端進(jìn)行顯示。 服務(wù)器端渲染的優(yōu)點(diǎn) 有利于SEO搜索引擎優(yōu)化,因?yàn)榉?wù)端渲染是將渲染好的html字符串返回給了客戶端,...
摘要:如果你有一個(gè)高流量的站點(diǎn),提高性能的第一步是在你的前面放一個(gè)反向代理服務(wù)器。使用在一個(gè)已經(jīng)存在的服務(wù)器前做反向代理,作為的一個(gè)核心應(yīng)用,已經(jīng)被用于全世界成千上萬的站點(diǎn)中。 如果你的 node 服務(wù)器前面沒有 nginx, 那么你可能做錯(cuò)了?!?Bryan Hughes Node.js 是使用 最流行的語言— JavaScript 構(gòu)建服務(wù)器端應(yīng)用的領(lǐng)先工具 。由于可以同時(shí)提供 web ...
摘要:后端知識(shí)點(diǎn)總結(jié)基礎(chǔ)不是是一種軟件開發(fā)平臺(tái),它的競(jìng)爭(zhēng)對(duì)象歷史第一次有一種語言可以通吃前后端網(wǎng)站阿里云鏡像版本年初年中年底最新版本功能強(qiáng)大可靠,適合大型企業(yè)級(jí)項(xiàng)目簡(jiǎn)單易用適合互聯(lián)網(wǎng)項(xiàng)目易用適合平臺(tái)性能好適合服務(wù)器端密集型項(xiàng)目不適合密集型項(xiàng)目密集 后端知識(shí)點(diǎn)總結(jié)——NODE.JS基礎(chǔ) 1.Node.js Node.js不是JS,是一種軟件開發(fā)平臺(tái),它的競(jìng)爭(zhēng)對(duì)象JSP/PHP/ASP.NET...
閱讀 3745·2021-11-25 09:43
閱讀 716·2021-09-22 15:59
閱讀 1816·2021-09-06 15:00
閱讀 1851·2021-09-02 09:54
閱讀 755·2019-08-30 15:56
閱讀 1244·2019-08-29 17:14
閱讀 1922·2019-08-29 13:15
閱讀 953·2019-08-28 18:28