熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JavaScript的目的

2022-06-13   來源: JSP教程 

  從今天起我將陸續將 ppk on JavaScript 的讀書心得發布到這個blog上ppk是我所景仰的一位web開發者原因無它只是因為作為一個JavaScript的開發者來說他涉及的領域包括web標准可用性無障礙等正是其他開發者所不關注或者故意忽略的並且他寫了很多案例測試不同的浏覽器總結出JavaScript的接口(API)兼容性成為JavaScript開發者重要參考資料幾年如一日這種鑽研精神是很多人所缺乏的

  ppk在今年月出版了他的書我從去年起就在等的書今天拿到手迫不及待地把第一章閱讀完畢果然讓人充滿驚喜他的功力非同一般雖然只是一個初學者但我認為我已經走在正確的學習道路上我想我若能將學習心得分享能讓正在學習的人看到可以一起交流一起進步盡管我不敢確保你能從我這裡得到什麼啟發但我可以確信我這些筆記會比你拷貝粘貼代碼的學習方式更正確

  這本書有十章章名都簡潔明了分別是目的背景浏覽器准備核心BOM 事件DOM CSS更改和數據獲取從來沒有一本書能如此簡潔地明確JavaScript的方方面面因此學習不會有太大負擔前言不宜過多下面就開始我的第一章學習筆記

  開篇宗義JavaScript的目的是為網頁增加特別的一層可用性聽起來很簡單但這條黃金定律經常被人誤解就算編寫有用的JavaScript 開發者可能還是沒能結合適當的情景Web標准運動發展下與當代無障礙的HTML頁面的配合更為不妙的是有些開發者不是為網頁增加一層可用性而是用整層取代之後果是如果浏覽器不支持JavaScript 網站就完了

  概念概述

  JavaScript是一門由浏覽器解釋的腳本語言它通過在客戶端而不是服務器端處理某些交互比如表單驗證創建新菜單來給網站增添可用性傳統的網頁交互是客戶端的一舉一動都必須經過服務器端的出來才能反饋回來漫長的等待會讓用戶崩潰而JavaScript可以在客戶端代替服務器端做某些事情(最明顯的表單驗證)從而提高用戶體驗

  隨著時代的發展JavaScript能夠處理越來越多的交互問題出現了JavaScript能做這麼多事情到底要多用還是少用?這就有了富與瘦的對決是整個頁面都用JavaScript來控制交互還是只增加些許的JavaScript來增強可用性?就是說盡可能地使用JavaScript還是有所節制甚至不用?

  瘦客戶端很大程度上依賴於客戶端-服務器的通訊而富客戶端盡可能限制額外的數據通訊

  哪種方式更好?盡管富客戶端帶來一些可用性益處但瘦客戶端可能是更標准的JavaScript用法Web被認為是文檔集合而不是界面集合最明顯的證據是浏覽器有後退前進的功能讓你在文檔中跳轉而界面會有麼?浏覽器可以收藏(書簽)文檔而界面可以麼?從無障礙來說瘦客戶端也更少出錯

  這種非平衡性是很難解決的富客戶端當然也可以在更高級的界面做到前進後退或者收藏也可以做到完美的無障礙這必須需要大量的額外工作但不是每個項目都有超出預算的時間或金錢此外太過專注於可用性而忽略無障礙也是一個問題

  那麼JavaScript的目的是為富客戶端還是瘦客戶端服務?答案是看情況得看你的網站你的受眾你的JavaScript水平



  技術概述

  JavaScript分為六個方面分別是核心(Core)浏覽器對象模型(BOM)事件(Events)文檔對象模型(DOM)CSS變更和數據獲取(XMLHttpRequest)

  上古時代NetScape領頭之時NetScape是事實標准

  當代卻沒有這麼簡單ECMA標准化JavaScript Core WC標准化DOM而BOM尚在WHATWG的標准化中WC也剛有了XMLHttpRequest的第一份草稿今天BOM依然遵循NetScape的事實標准而XMLHttpRequest還是遵照Microsoft的原始規范

  JavaScript的目的在於為網站增加可用性而不是破壞用戶的隱私和安全因此JavaScript不允許讀寫用戶的文件(cookies除外)采取同源策略只允許來自相同域的交互不允許讀取歷史記錄不能為上傳文件的表單設置值由JavaScript控制的窗口關閉需經用戶確認由JavaScript打開的窗口不能小於×的窗口不能移出屏幕之外

  JavaScript的歷史

  探尋歷史才能讓我們知道JavaScript為什麼會被誤解得如此深JavaScript的創造者是Brendan Eich首次在NetScape 中實現它的目的是創建一門足夠簡單的語言讓開發者能容易地為網頁增加交互只要把代碼拷貝過來調整一下就可以這確實令人贊歎很多JavaScript開發者是從拷貝粘貼開始的

  不幸的是JavaScript生錯了名字也生錯了語法最初它叫LiveScript年的時候Java炙手可熱NetScape想搭順風車於是某產品經理(我想知道她/他是誰呵呵)命令更名命令Brendan Eich讓Javascript像Java這讓很多人誤認為JavaScript是Java的低級版不能引起嚴肅程序員的關注

  年之時NetScape 是王Microsoft只能照抄這是一個難得的和諧期當然那時候浏覽器比起現在來僅限於表單驗證鼠標輪換的一些小花招而已

  接下來就是影響深遠的浏覽器大戰了為了爭奪市場兩家浏覽器紛紛實現不同的東西誰都想成為事實標准最有名的就是NetScape 的documentlayer和IE 的documentall(忘記它們吧!)它們讓DHTML流行起來

  年Microsoft以推出良好支持CSS和DOM的IE勝出NetScape的讓位終於有足夠的時間讓一場革命發生那就是CSSWaSP首先從CSS入手而很多專家也發現/發明了許多浏覽器的補救辦法讓這場革命成為可能

  一些先鋒們在CSS革命的影響下開始探索新的JavaScript風格更多地關注無障礙改觀人們對它的壞名聲那就是unobstrusive——把JavaScript從HTML結構層分離出來遺憾的是那些在浏覽器大戰存活下來的程序員可能還沒有發現這條新道路

  Ajax熱潮為JavaScript社區注入新的血液但某些方面Ajax太像DHTML了無障礙是很多Ajax應用的難言之隱這個熱潮趨向於關注技術(如何Ajax)而可用性和交互(為何Ajax)卻被低估最後各種腫脹的庫(現在稱為框架)迅速發展起來

  Ajax依然全速前進但這會像DHTML一樣結果人們漸漸失去興趣它們會土崩瓦解

  JavaScript興衰史好像有一定的定律支配我們能打破這個怪圈嗎?不管如何JavaScript開發者在尋找各種酷代碼和華而不實的框架之外更應該調整自己的行動讓JavaScript運行在標准兼容的無障礙的網頁中


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19410.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.