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