網(wǎng)頁(yè)中引入js的幾種方法及比較

首先登颓,來(lái)看一下 Html5 頁(yè)面引用 JavaScript 代碼的幾種方式:

1、Html5 頁(yè)面中使用 <script> 標(biāo)簽容納 JavaScript 代碼轧钓;

<script>
init();
</script>

這里不僅可以調(diào)用任意位置的函數(shù),而且可以聲明變量,構(gòu)建函數(shù)和對(duì)象等等骏啰。
2、Html5 頁(yè)面中使用 <script src="xxx.js"></script> 引入同路徑下的 xxx.js 文件中的 JavaScript 代碼抽高;

<script src=
"js/main.js"
</script>

注意這里的 main.js 是與當(dāng)前 Html 頁(yè)面文件同目錄下的 js 子目錄中的文件判耕,使用時(shí),確保相對(duì)路徑正確翘骂,當(dāng)然了壁熄,也可以使用絕對(duì)路徑。

3碳竟、Html5 界面元素事件直接賦與一段 JavaScript 代碼草丧;

<input type=
"button"
name=
"Button"
value=
"Button"
onclick=
"javascript:alert('測(cè)試')"

4.通過(guò)其他網(wǎng)站CDN直接進(jìn)行添加

<script src="http://cdn.uedsc.com/jquery/2.1.3/jquery.js"></script>

此處可參考 javascript設(shè)置onclick

以下資源可供參考,進(jìn)一步理解 JavaScritp:JavaScript的5種調(diào)用函數(shù)的方法
解讀ECMAScript[1]——執(zhí)行環(huán)境莹桅、作用域及閉包
解讀ECMAScript[2]——函數(shù)昌执、構(gòu)造器及原型

百度百科 javascript
要想真正掌握 JavaScript 語(yǔ)言,那么閉包是必須要深刻理解和領(lǐng)悟的核心诈泼。

順便懂拾,記錄一下引用 [CSS] 的幾種方式:
1、外部樣式表
css 樣式存于一個(gè) .css 擴(kuò)展名的文件中铐达,引用方式:

<link href=
"../Styles/Site.css"
rel=
"stylesheet"
type=
"text/css"

2岖赋、內(nèi)部樣式表

<title>page標(biāo)題</title>
<style type=
"text/css"
input{background-color:Green }
</style>

3、內(nèi)聯(lián)樣式

<input type=
"text"
style=
"background-color:Blue;"
value=
"input1"

更詳細(xì)的 CSS 運(yùn)用瓮孙,可參考 CSS 選擇器及各樣式引用方式介紹 贾节。
最后,切入主題衷畦,頁(yè)面加載初始調(diào)用 JavaScript 代碼的三種方式:
1栗涂、body 的 onload 事件觸發(fā)回調(diào) JavaScript 函數(shù);

該事件在 document 文檔中的所有內(nèi)容都加載完成后才會(huì)被調(diào)用祈争,這種方式顯得有點(diǎn)笨拙斤程,但比較把握,確保一切安好,才去調(diào)用忿墅。
如想避勉過(guò)多加載扁藕,那么頁(yè)面設(shè)計(jì)上可以相對(duì)講究些方法,人為達(dá)到滯后加載的效果疚脐,就可以給這個(gè)事件進(jìn)行減壓亿柑,達(dá)到盡快執(zhí)行的目標(biāo)。
2棍弄、document 的 onready 事件觸發(fā)回調(diào) JavaScript 函數(shù)望薄;

document.onready = init();

該事件在 document 文檔中的 dom 模型加載完成就會(huì)產(chǎn)生回調(diào),而不考慮引用的圖片呼畸、腳本等資源痕支。
3、在引入 Html5 頁(yè)面的 JavaScript 代碼中蛮原,直接調(diào)用 JavaScript 函數(shù)或執(zhí)行 JavaScript 命令卧须;

<script>
init();
</script>

或在外部 js 腳本中,直接調(diào)用 init();
init() 可以是 Html5 頁(yè)面中聲明的函數(shù)儒陨,也可以是外部引用的腳本中的函數(shù)花嘶。
不過(guò)發(fā)現(xiàn)一個(gè)有趣的問(wèn)題,當(dāng)在 init() 函數(shù)定義中蹦漠,通過(guò)

document.getElementById(
'container'
);

獲取 container 元素的引用時(shí)椭员,如果該 Html5 元素在該段頁(yè)面內(nèi) JavaScript 代碼之后時(shí),會(huì)獲取不到該元素津辩。
這說(shuō)明一個(gè)問(wèn)題拆撼,第三種啟動(dòng)執(zhí)行方式,是邊加載邊執(zhí)行喘沿,所以對(duì)順序有要求闸度;

4.網(wǎng)站使用CDN的好處和弊端
1、多域名加載資源
一般情況下蚜印,瀏覽器都會(huì)對(duì)單個(gè)域名下的并發(fā)請(qǐng)求數(shù)(文件加載)進(jìn)行限制莺禁,通常最多有4個(gè),那么第5個(gè)加載項(xiàng)將會(huì)被阻塞窄赋,直到前面的某一個(gè)文件加載完畢哟冬。
因?yàn)镃DN文件是存放在不同區(qū)域(不同IP)的,所以對(duì)瀏覽器來(lái)說(shuō)是可以同時(shí)加載頁(yè)面所需的所有文件(遠(yuǎn)不止4個(gè))忆绰,從而提高頁(yè)面加載速度浩峡。

2、文件可能已經(jīng)被加載過(guò)并保存有緩存
一些通用的js庫(kù)或者是css樣式庫(kù),如jQuery,在網(wǎng)絡(luò)中的使用是非常普遍的。當(dāng)一個(gè)用戶在瀏覽你的某一個(gè)網(wǎng)頁(yè)的時(shí)候拷邢,很有可能他已經(jīng)通過(guò)你網(wǎng)站使用的CDN訪問(wèn)過(guò)了其他的某一個(gè)網(wǎng)站纸淮,恰巧這個(gè)網(wǎng)站同樣也使用了jQuery平斩,那么此時(shí)用戶瀏覽器已經(jīng)緩存有該jQuery文件(同IP的同名文件如果有緩存,瀏覽器會(huì)直接使用緩存文件咽块,不會(huì)再進(jìn)行加載)绘面,所以就不會(huì)再加載一次了,從而間接的提高了網(wǎng)站的訪問(wèn)速度侈沪。

3揭璃、高效率
你的網(wǎng)站做的再NB也不會(huì)NB過(guò)百度NB過(guò)Google吧?一個(gè)好的CDNs會(huì)提供更高的效率峭竣,更低的網(wǎng)絡(luò)延時(shí)和更小的丟包率塘辅。

4晃虫、分布式的數(shù)據(jù)中心
假如你的站點(diǎn)布置在北京皆撩,當(dāng)一個(gè)香港或者更遠(yuǎn)的用戶訪問(wèn)你的站點(diǎn)的時(shí)候,他的數(shù)據(jù)請(qǐng)求勢(shì)必會(huì)很慢很慢哲银。而CDNs則會(huì)讓用戶從離他最近的節(jié)點(diǎn)去加載所需的文件扛吞,所以加載速度提升就是理所當(dāng)然的了。

5荆责、內(nèi)置版本控制
通常滥比,對(duì)于CSS文件和JavaScript庫(kù)來(lái)說(shuō)都是有版本號(hào)的,你可以通過(guò)特定版本號(hào)從CDNs加載所需的文件做院,也可以使用latest加載最新版本(不推薦)盲泛。

6、使用情況分析
一般情況下CDNs提供商(如百度云加速)都會(huì)提供數(shù)據(jù)統(tǒng)計(jì)功能键耕,可以了解更多關(guān)于用戶訪問(wèn)自己網(wǎng)站的情況寺滚,可以根據(jù)統(tǒng)計(jì)數(shù)據(jù)對(duì)自己的站點(diǎn)適時(shí)適當(dāng)?shù)淖龀鲂┰S調(diào)整。

7屈雄、有效防止網(wǎng)站被攻擊
一般情況下CDNs提供商也是會(huì)提供網(wǎng)站安全服務(wù)的村视。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酒奶,隨后出現(xiàn)的幾起案子蚁孔,更是在濱河造成了極大的恐慌,老刑警劉巖惋嚎,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杠氢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡另伍,警方通過(guò)查閱死者的電腦和手機(jī)鼻百,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人愕宋,你說(shuō)我怎么就攤上這事玻靡。” “怎么了中贝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵囤捻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我邻寿,道長(zhǎng)蝎土,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任绣否,我火速辦了婚禮誊涯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蒜撮。我一直安慰自己暴构,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布段磨。 她就那樣靜靜地躺著取逾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苹支。 梳的紋絲不亂的頭發(fā)上砾隅,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音债蜜,去河邊找鬼晴埂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寻定,可吹牛的內(nèi)容都是我干的儒洛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼特姐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晶丘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起唐含,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浅浮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后捷枯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體滚秩,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年淮捆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了郁油。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片本股。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖桐腌,靈堂內(nèi)的尸體忽然破棺而出拄显,到底是詐尸還是另有隱情,我是刑警寧澤案站,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布躬审,位于F島的核電站,受9級(jí)特大地震影響蟆盐,放射性物質(zhì)發(fā)生泄漏承边。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一石挂、第九天 我趴在偏房一處隱蔽的房頂上張望博助。 院中可真熱鬧,春花似錦痹愚、人聲如沸富岳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)城瞎。三九已至渤闷,卻和暖如春疾瓮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背飒箭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工狼电, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弦蹂。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓肩碟,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凸椿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子削祈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容