成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

客戶端JS——“Web瀏覽器中的JS”

cooxer / 1215人閱讀

摘要:在這個(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

相關(guān)文章

  • 詳解Vue服務(wù)端渲染

    摘要:二服務(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字符串返回給了客戶端,...

    Paul_King 評(píng)論0 收藏0
  • 5個(gè)提高Node.js應(yīng)用性能的技巧

    摘要:如果你有一個(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 ...

    k00baa 評(píng)論0 收藏0
  • 后端知識(shí)點(diǎn)總結(jié)——NODE.JS基礎(chǔ)

    摘要:后端知識(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...

    Freeman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<