javascript
JavaScript_process01
JavaScript_process01
和html使用css一樣,使用js也有兩種途徑,其一為內(nèi)嵌js代碼,其二是外部引用.js文件。
?
******************************************************************
需要注意的是,帶有src屬性的<script>元素,即采用外部引用方式,不應(yīng)該在其<script>和</script>標(biāo)簽之間再包含額外的JavaScript代碼。如果包含了嵌入的代碼,則只會下載并執(zhí)行腳本文件,嵌入的代碼會被忽略。 另外,通過<script>元素的src屬性還可以包含來自外部域的JavaScript文件。這一點既使<script>元素倍顯強大,又讓它備受爭議。位于外部域中的代碼也會被加載和解析,就像這些代碼位于加載它們的頁面中一樣。利用這一點就可以在必要時通過不同的域來提供JavaScript文件。不過,在訪問自己不能控制的服務(wù)器上的JavaScript文件時則要多加小心。考慮到如今網(wǎng)絡(luò)安全hack事件遍布大街小巷,安全意識一定不能放輕,因此,如果想包含來自不同域的代碼,則要么你是那個域的所有者,要么那個域的所有者值得信賴。
******************************************************************
一 標(biāo)簽的位置
傳統(tǒng)來說,<script></script>應(yīng)該位于head內(nèi)部,雖然規(guī)范化了,但針對現(xiàn)在的網(wǎng)頁復(fù)雜性,會產(chǎn)生很大的延遲,因為在.js加載完全之前Body元素不會得到展現(xiàn)。
所以,現(xiàn)在web應(yīng)用程序一般都采用把.js放在內(nèi)容后面,即:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>with a js page</title>
</head>
<body>
頁面內(nèi)容 by doriswowo
<script type="text/javascript" src="js1.js"></script>
<script type="text/javascript" src="js2.js"></script>
</body>
</html>
?
這樣的話頁面就會優(yōu)先加載內(nèi)容顯示,用戶體驗得到提升~
?
二.延遲腳本
#使用defer屬性,使得在頁面加載完全之后,即</body>之后,腳本才執(zhí)行
#defer屬性要求只能用于外部引用腳本,但是IE4~7仍支持內(nèi)部嵌入腳本,8以后完全支持html5規(guī)范
#chrome,firefox,ie4,safari是最早支持該屬性的,但還是有些瀏覽器不支持,所以最好還是放在頁底咯~
?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>with a js page</title>
<script type="text/javascript" defer="defer" src="js1.js"></script>
<script type="text/javascript" defer="defer" src="js2.js"></script>
</head>
<body>
頁面內(nèi)容
</body>
</html>
*html5要求腳本按照順序執(zhí)行,即js1先于js2,但實際中不是很有效,所以為了避免錯亂,最好是只設(shè)定一個延遲加載?
三 異步腳本
#和defer類似,用于改變腳本的執(zhí)行行為的,但是該屬性不保證腳本順序執(zhí)行,所以要注意腳本之間的依賴關(guān)系
?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>with a js page</title>
<script type="text/javascript" async="async" src="js1.js"></script>
<script type="text/javascript" async="async" src="js2.js"></script>
</head>
<body>
頁面內(nèi)容
</body>
</html>
?
四 在xhtml,html中注意點
如下代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>with a js page</title>
<script type="text/javascript">
function cmp(a,b){
if(a < b ?)
alert("a<b啦")
}
</script>
</head>
<body>
頁面內(nèi)容
</body>
</html>
#在html中可以正常運行,但用于xhtml的特殊嚴(yán)格規(guī)則,對于<會解析為一個標(biāo)簽開始,之間不能有空格,會報錯誤
解決方法為:將a<b改為a<b
?
五 不推薦使用script時
?
#若瀏覽器不支持script元素,則使用html的注釋<!-- -->將其<script></script>內(nèi)注釋掉,以免瀏覽器將其解釋為內(nèi)容而影響頁面排版
?
六 文檔格式
#html5之前的文檔格式聲明都是一大串,我也記不住,但html5寫出來就是分分鐘的事啦
?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>with a js page</title>
</head>
<body>
頁面內(nèi)容
</body>
</html>
?
七 瀏覽器不支持javascript時:noscript
#最后說一個noscript,當(dāng)瀏覽器壓根不支持javascript,或者腳本被禁用時,采用noscript給用戶友好的提示
#當(dāng)然了,如果不存在上述問題就忽略啦,相當(dāng)于沒有該元素
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>with a js page</title>
</head>
<body>
頁面內(nèi)容
<noscript>wow~該瀏覽器不支持javascript,請換個瀏覽器或者解除腳本禁用選項~</noscript>
</body>
</html>
?
轉(zhuǎn)載于:https://www.cnblogs.com/doriswowo/p/js01bydoriswowo.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript_process01的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS 控件 - 去除 tableVie
- 下一篇: 【转】crontab 详解