Realazy的blog:http://realazy.org/blog/
從今天起,我將陸續(xù)將 ppk on JavaScript 的讀書(shū)心得發(fā)布到這個(gè)blog上。ppk是我所景仰的一位web開(kāi)發(fā)者,原因無(wú)它,只是因?yàn)樽鳛橐粋(gè)JavaScript的開(kāi)發(fā)者來(lái)說(shuō),他涉及的領(lǐng)域包括web標(biāo)準(zhǔn),可用性,無(wú)障礙等,正是其他開(kāi)發(fā)者所不關(guān)注或者故意忽略的。并且,他寫(xiě)了很多案例測(cè)試不同的瀏覽器,總結(jié)出JavaScript的接口(API)兼容性,成為JavaScript開(kāi)發(fā)者重要參考資料,幾年如一日,這種鉆研精神是很多人所缺乏的。
ppk在今年9月出版了他的書(shū),我從去年起就在等的書(shū)。今天拿到手,迫不及待地把第一章閱讀完畢。果然讓人充滿驚喜,他的功力非同一般。雖然只是一個(gè)初學(xué)者,但我認(rèn)為我已經(jīng)走在正確的學(xué)習(xí)道路上。我想,我若能將學(xué)習(xí)心得分享,能讓正在學(xué)習(xí)的人看到,可以一起交流一起進(jìn)步,盡管我不敢確保你能從我這里得到什么啟發(fā),但我可以確信,我這些筆記會(huì)比你拷貝粘貼代碼的學(xué)習(xí)方式更正確。
這本書(shū)有十章,章名都簡(jiǎn)潔明了,分別是:目的,背景,瀏覽器,準(zhǔn)備,核心,BOM, 事件,DOM, CSS更改和數(shù)據(jù)獲取。從來(lái)沒(méi)有一本書(shū)能如此簡(jiǎn)潔地明確JavaScript的方方面面,因此學(xué)習(xí)不會(huì)有太大負(fù)擔(dān)。前言不宜過(guò)多,下面就開(kāi)始我的第一章學(xué)習(xí)筆記。
開(kāi)篇宗義:JavaScript的目的是,為網(wǎng)頁(yè)增加特別的一層可用性。聽(tīng)起來(lái)很簡(jiǎn)單,但這條黃金定律經(jīng)常被人誤解。就算編寫(xiě)有用的JavaScript, 開(kāi)發(fā)者可能還是沒(méi)能結(jié)合適當(dāng)?shù)那榫埃篧eb標(biāo)準(zhǔn)運(yùn)動(dòng)發(fā)展下,與當(dāng)代無(wú)障礙的HTML頁(yè)面的配合。更為不妙的是,有些開(kāi)發(fā)者不是為網(wǎng)頁(yè)增加一層可用性,而是用整層取代之,后果是,如果瀏覽器不支持JavaScript, 網(wǎng)站就完了。
概念概述
JavaScript是一門(mén)由瀏覽器解釋的腳本語(yǔ)言。它通過(guò)在客戶端而不是服務(wù)器端處理某些交互,比如表單驗(yàn)證,創(chuàng)建新菜單來(lái)給網(wǎng)站增添可用性。傳統(tǒng)的網(wǎng)頁(yè)交互是,客戶端的一舉一動(dòng)都必須經(jīng)過(guò)服務(wù)器端的出來(lái)才能反饋回來(lái),漫長(zhǎng)的等待會(huì)讓用戶崩潰。而JavaScript可以在客戶端代替服務(wù)器端做某些事情(最明顯的,表單驗(yàn)證),從而提高用戶體驗(yàn)。
隨著時(shí)代的發(fā)展,JavaScript能夠處理越來(lái)越多的交互。問(wèn)題出現(xiàn)了,JavaScript能做這么多事情,到底要多用還是少用?這就有了富與瘦的對(duì)決。是整個(gè)頁(yè)面都用JavaScript來(lái)控制交互還是只增加些許的JavaScript來(lái)增強(qiáng)可用性?就是說(shuō),盡可能地使用JavaScript還是有所節(jié)制,甚至不用?
瘦客戶端很大程度上依賴于客戶端-服務(wù)器的通訊,而富客戶端盡可能限制額外的數(shù)據(jù)通訊。
哪種方式更好?盡管富客戶端帶來(lái)一些可用性益處,但瘦客戶端可能是更“標(biāo)準(zhǔn)”的JavaScript用法。Web被認(rèn)為是文檔集合,而不是界面集合。最明顯的證據(jù)是,瀏覽器有后退前進(jìn)的功能讓你在文檔中跳轉(zhuǎn)而界面會(huì)有么?瀏覽器可以收藏(書(shū)簽)文檔而界面可以么?從無(wú)障礙來(lái)說(shuō),瘦客戶端也更少出錯(cuò)。
這種非平衡性是很難解決的。富客戶端當(dāng)然也可以在更高級(jí)的界面做到前進(jìn)后退,或者收藏,也可以做到完美的無(wú)障礙。這必須需要大量的額外工作,但不是每個(gè)項(xiàng)目都有超出預(yù)算的時(shí)間或金錢。此外,太過(guò)專注于可用性而忽略無(wú)障礙也是一個(gè)問(wèn)題。
那么JavaScript的目的是為富客戶端還是瘦客戶端服務(wù)?答案是:看情況。得看你的網(wǎng)站,你的受眾,你的JavaScript水平。
出處:
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) JavaScript的目的 [2]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、網(wǎng)站綜合版塊參加討論
|