==============
使用其他服務器引入JS文件,
1,減輕服務器壓力
2,速度快
3,可以緩存
cdnjs庫,更新比較快
https://cdnjs.com/
cdn庫 引入JS文件如:jquery
bootcdn : https://www.bootcdn.cn/
百度靜態資源公共庫,有時候打不開。
使用CDN引入JS文件的優點:
1,直接在搜索框輸入:jquery
2,點擊選擇需要的版本,復制地址即可。
3,把該地址放到引入標簽中的src中 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/
libs/jquery/3.4.1/jquery.min.js"></script>
使用CDN引入JS文件的缺點:
1,如果被引入JS文件的服務器不穩定,那么就會引入失敗,導致頁面無法正常顯示。
解決方案如下:
-------
<!-- 在使用CDN引入時,因服務器不穩定導致無法JS文件引入失敗,則引入本地服務器的JS文件即可: -->
</body>
<!-- 這里使用CDN引入jquery.js文件,僅用發布時使用,開發時比較慢 -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
/*
開發時使用本地效率比較高
判斷如果上面的cdn引入的jquery.js文件沒有成功(如:服務器不穩定導致)
則引入本地的jquery.js文件。
此外,結尾的的script標簽使用反斜杠進行轉義: \/ */
window.jQuery || document.write('<script src = "js/index.js"><\/script>')
//也可以使用字符串拼接
// window.jQuery || document.write('<script src = "js/index.js"><' + '/script>')
</script>
</html>
============
====================================
script屬性
defer:加載完腳本后並不執行,而是等整個頁面加載完成之后再執行
<script defer url=''></script>
ansyc:加載完成腳本后立即執行,不用等整個頁面都加載完,屬於異步執行
<script async url=''></script>
-------------------
<script type="text/javascript">
document.write("我愛你"+"<br/>");
</script>
<script type="text/javascript" src="text.js"></script>
------------
text.js的內容
document.write("這是引入外部的js文件");
------------
顯示:
我愛你
這是引入外部的js文件
============
defer 延遲,推遲 目前只支持ie瀏覽器,google chrome 不支持。
async 異步 非同步,即是多線程。加載頁面的同時也加載外部引入的文件。如:js css 等文件。
<script defer="defer" type="text/javascript" src="text1.js"></script>
defer="defer" 加載完所有文檔后,再加載該引入的文件。目前只支持IE瀏覽器,兼容性不好。
所以想要后面加載,那么就把該句代碼放在</body>之前。
<script async="async" type="text/javascript" src="text2.js"></script>
async="async" 加載網頁文檔時,加載到該句代碼時,和網頁結構同時開始一起加載外部引入文件。
該屬性支持所有主流瀏覽器。
---------------------------------
A:<script> 標簽用於定義客戶端腳本;
B:<style> 標簽用於為 HTML 文檔定義樣式信息;
C:<meta> 標簽的屬性定義了與文檔相關聯的名稱/值對;
D:<title> 元素可定義文檔的標題;
A:src規定外部腳本文件的 URL;
B:async屬性規定對腳本進行異步加載,實現JavaScript雙線程加載;
C:type指示腳本的 MIME 類型;
D:defer規定是否對腳本執行進行延遲,直到頁面加載為止;