Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
嘍,大家好,我是雷工!
今天繼續(xù)學(xué)習(xí)JavaScript基礎(chǔ)語法,JS的書寫位置,俗話說:好記性不如爛筆頭,邊學(xué)邊記,方便回顧。
代碼寫在標(biāo)簽內(nèi)部
示例:
<body>
<button onclick="alert('你還真信呀?~')">點擊關(guān)注【雷工筆記】月薪過萬</button>
</body>
2.1、要將JS代碼直接寫在HTML文件里面。
2.2、在HTML文件中添加一個script,用script標(biāo)簽包住,script標(biāo)簽中的代碼就是JS代碼。
2.3、script標(biāo)簽的位置可以在HTML文件中的任何地方,但推薦在head標(biāo)簽中或者body標(biāo)簽中。
示例:
<body>
<script>
alert('hello,歡迎關(guān)注雷工筆記')
</script>
</body>
雷工提醒:
我們習(xí)慣將<script>標(biāo)簽放在HTML文件的底部附近,原因是瀏覽器會按照代碼在文件中的順序加載HTML。
如果先加載的JS代碼希望修改其下方的HTML,那么其可能因為要修改的HTML還未被加載而失效。所以比較穩(wěn)妥的策略是將JS代碼放在html文件的底部附近。
3.1、先創(chuàng)建一個JS文件,后綴名是xxxx.js。
3.2、使用script標(biāo)簽引入JS文件。
示例:
<body>
<!--用src引入外部JS文件-->
<script src="leigong.js"></script>
</body>
雷工提醒:
外聯(lián)式JavaScript會讓代碼看上去更加有序,更容易復(fù)用,且沒有了腳本的混淆,html也更容易閱讀,因此這是值得我們學(xué)習(xí)的好習(xí)慣。
4.1、外聯(lián)式中,script標(biāo)簽的位置可以在HTML文件中的任何地方,但推薦在body標(biāo)簽中,盡量寫到文件末尾</body>
前面。
4.2、JS中內(nèi)嵌式寫法和外聯(lián)式寫法不可以混合使用,如果外聯(lián)式寫法,script標(biāo)簽中間就不可以再寫代碼,否則會被忽略,只執(zhí)行外聯(lián)部分。
以上是關(guān)于JavaScript基礎(chǔ)中書寫位置的相關(guān)知識的筆記,有不當(dāng)之處還望指正。
想起一句話,貌似是錘子科技發(fā)布會上聽到的:從來沒有什么失敗的人,只有半途而廢的人。
每天進(jìn)步一點點,加油。
次我們來說一下,HTML網(wǎng)頁中的定位,有很多小伙伴一定好奇,為什么我們寫的代碼都是按順序羅列的而在網(wǎng)頁的展示效果中,我們的各種樣式,標(biāo)簽,圖片等東西都是出現(xiàn)在網(wǎng)頁的各個位置,網(wǎng)頁看起來很美觀,各種盒模型擺放合理,這是因為在HTML中有定位的能力,今天我們就來學(xué)習(xí)一下。
position在英語中是位置的意思,而在我們CSS代碼中position也是跟位置有關(guān)的,position有三個屬性值分別為relative(相對定位:相對于自己原來的位置進(jìn)行定位,但保留自己原來的位置,別的元素?zé)o法占用),absolute(絕對定位:相對于有定位的父級進(jìn)行定位,如果沒有則相對于文檔進(jìn)行定位,定位會脫離文檔,不保留原來的位置,會和原來的文檔不在一個層),fixed(位置定位:他的位置不會隨著滑輪的滾動而改變較常見于彈窗廣告,他也會脫離文檔流)。
我們說完了position,接下來我們就說說他是怎么進(jìn)行定位的,我們有l(wèi)eft,top,right,bottom,五個屬性分別對應(yīng) 距左邊,距上邊,距右邊,距下邊,大家注意到我在每個方向前都加了個距字,我們所做的定位是距各個方向的距離而不是移動,例:left:200px,是向右移動200像素,他的意思是距離左邊增加200像素。在我們實際的編程中一般都不常用bottom,我們知道,滑輪是可以一直往下滑的,所以我們相對于底部定位的話就很困難。
我們來通過代碼和結(jié)果來看一下:
沒有定位的樣式
加了relative
加了relative的結(jié)果
上面這個結(jié)果圖看著比例不太對是因為作者截圖沒截好[捂臉]
我們可以看出貓圖片并沒有移動,而是給兔子圖片留著位置。
加了absolute
加了absolute的結(jié)果
這個結(jié)果我們可以看出貓圖片向前移動了,并沒有保留兔子圖片原來的位置
加了fixed
代碼中的<br>是為了使滑輪可以滑動,以便更好的展示效果。
<script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
用了fixed的效果展示。
以上的代碼樣式只對兔子圖片起作用,我沒有給貓?zhí)砑尤魏螛邮剑垐D片只是作為參照物。
覽器加載頁面是按從上到下順序加載的。加載 JS 并執(zhí)行的時候,會阻塞其他資源的加載。這是因為 JS 可能會有 DOM 、樣式等等操作,所以瀏覽器要先加載這段 JS 并執(zhí)行,再加載放在它后面的 HTML、CSS。
因此,加入一段巨大的 JS 放在最上面,瀏覽器首先要下載并執(zhí)行,這段時間里面,頁面是空白的。相比于加載了部分 HTML 和 樣式 但是沒有 JS 交互功能,顯然是后者對于瀏覽者體驗要好。
然而,是否所有 JS 都要放在最下面呢?并不是。
舉實際的例子:
html5shiv是一段 JS 腳本,用來是早期 IE 兼容 HTML5 新增標(biāo)簽的支持。
這個 JS 腳本,必須要放在上面 head 部分,為什么呢?因為在老 IE 瀏覽器下面,不支持 <section> 這樣的標(biāo)簽,所以用 JS 來兼容。如果放在底部,等 IE 瀏覽器先報錯了,才會執(zhí)行這塊 JS 沒多大用。
jQuery 這類的庫,也是建議放在最上面的。首先最大的疑問可能是 jQuery 這么大,放在上面豈不是阻塞的很厲害?
不過 jQuery 通常引用的是 CDN 地址,而且經(jīng)過 gzip 壓縮之后并不是很大,而且引用公共 CDN 上面的 jQuery 話,很大幾率早已被用戶緩存下來了。所以可以不需要考慮阻塞產(chǎn)生的性能問題。
而我們都知道,JS 是按順序執(zhí)行下來的。也就是你沒運行 jQuery 之前,先運行了調(diào)用 jQuery 函數(shù)的代碼,就會報錯。你可以控制你自己寫的 JS 放在頁面最下面,放在 jQuery 下面,但是你無法保證頁面上其他地方會不會有人圖省事直接在 HTML 代碼里面輸出 JS。如果有,那么就會報錯。
所以我建議,類庫放在上面加載,其余代碼盡可能放在最底下加載。
然而,前端性能優(yōu)化只是薄薄一層
可能前端優(yōu)化半天,還不如上個 CDN 或者加個寬帶或者優(yōu)化一個后端算法來的效果好。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。