技術(shù)概述
JavaScript分為六個(gè)方面,分別是核心(Core),瀏覽器對(duì)象模型(BOM),事件(Events),文檔對(duì)象模型(DOM),CSS變更和數(shù)據(jù)獲。╔MLHttpRequest)。
上古時(shí)代,NetScape領(lǐng)頭之時(shí),NetScape3是事實(shí)標(biāo)準(zhǔn)。
當(dāng)代卻沒有這么簡(jiǎn)單。ECMA標(biāo)準(zhǔn)化JavaScript Core, W3C標(biāo)準(zhǔn)化DOM,而BOM尚在WHAT-WG的標(biāo)準(zhǔn)化中,W3C也剛有了XMLHttpRequest的第一份草稿。今天,BOM依然遵循NetScape3的事實(shí)標(biāo)準(zhǔn),而XMLHttpRequest還是遵照Microsoft的原始規(guī)范。
JavaScript的目的在于為網(wǎng)站增加可用性,而不是破壞用戶的隱私和安全。因此JavaScript不允許讀寫用戶的文件(cookies除外),采取同源策略,只允許來(lái)自相同域的交互。不允許讀取歷史記錄,不能為上傳文件的表單設(shè)置值,由JavaScript控制的窗口關(guān)閉需經(jīng)用戶確認(rèn),由JavaScript打開的窗口不能小于100×100的窗口,不能移出屏幕之外。
JavaScript的歷史
探尋歷史才能讓我們知道JavaScript為什么會(huì)被誤解得如此深。JavaScript的創(chuàng)造者是Brendan Eich,首次在NetScape 2中實(shí)現(xiàn)。它的目的是創(chuàng)建一門足夠簡(jiǎn)單的語(yǔ)言讓開發(fā)者能容易地為網(wǎng)頁(yè)增加交互,只要把代碼拷貝過來(lái)調(diào)整一下就可以。這確實(shí)令人贊嘆,很多JavaScript開發(fā)者是從拷貝粘貼開始的。
不幸的是JavaScript生錯(cuò)了名字,也生錯(cuò)了語(yǔ)法。最初它叫LiveScript,但1996年的時(shí)候Java炙手可熱,NetScape想搭順風(fēng)車,于是某產(chǎn)品經(jīng)理(我想知道她/他是誰(shuí),呵呵),命令更名,命令Brendan Eich讓“Javascript像Java”。這讓很多人誤認(rèn)為JavaScript是Java的低級(jí)版,不能引起嚴(yán)肅程序員的關(guān)注。
1996年之時(shí),NetScape 3是王,Microsoft只能照抄。這是一個(gè)難得的和諧期,當(dāng)然,那時(shí)候?yàn)g覽器比起現(xiàn)在來(lái)“瘦”了,僅限于表單驗(yàn)證,鼠標(biāo)輪換的一些小花招而已。
接下來(lái)就是影響深遠(yuǎn)的瀏覽器大戰(zhàn)了。為了爭(zhēng)奪市場(chǎng),兩家瀏覽器紛紛實(shí)現(xiàn)不同的東西,誰(shuí)都想成為事實(shí)標(biāo)準(zhǔn)。最有名的就是NetScape 4的document.layer和IE 4的document.all(忘記它們吧!)。它們讓DHTML流行起來(lái)。
1999年Microsoft以推出良好支持CSS和DOM的IE5勝出,NetScape的讓位終于有足夠的時(shí)間讓一場(chǎng)革命發(fā)生,那就是CSS。WaSP首先從CSS入手,而很多專家也發(fā)現(xiàn)/發(fā)明了許多瀏覽器的補(bǔ)救辦法,讓這場(chǎng)革命成為可能。
2003年,一些先鋒們?cè)贑SS革命的影響下開始探索新的JavaScript風(fēng)格,更多地關(guān)注無(wú)障礙,改觀人們對(duì)它的壞名聲,那就是unobstrusive——把JavaScript從HTML結(jié)構(gòu)層分離出來(lái),遺憾的是,那些在瀏覽器大戰(zhàn)存活下來(lái)的程序員可能還沒有發(fā)現(xiàn)這條新道路。
2005年,Ajax熱潮為JavaScript社區(qū)注入新的血液。但某些方面,Ajax太像DHTML了,無(wú)障礙,是很多Ajax應(yīng)用的難言之隱。這個(gè)熱潮趨向于關(guān)注技術(shù)(如何Ajax),而可用性和交互(為何Ajax)卻被低估。最后,各種腫脹的庫(kù)(現(xiàn)在稱為框架)迅速發(fā)展起來(lái)。
Ajax依然全速前進(jìn),但這會(huì)像DHTML一樣結(jié)果,人們漸漸失去興趣,它們會(huì)土崩瓦解。
JavaScript興衰史好像有一定的“定律”支配,我們能打破這個(gè)怪圈嗎?不管如何,JavaScript開發(fā)者在尋找各種酷代碼和華而不實(shí)的框架之外,更應(yīng)該調(diào)整自己的行動(dòng),讓JavaScript運(yùn)行在:標(biāo)準(zhǔn)兼容的,無(wú)障礙的網(wǎng)頁(yè)中。
出處:
責(zé)任編輯:moby
上一頁(yè) JavaScript的目的 [1] 下一頁(yè)
◎進(jìn)入論壇網(wǎng)頁(yè)制作、網(wǎng)站綜合版塊參加討論
|