現在很多網站使用了JavaScript,它讓互動響應更加靈敏,也增強了所謂的“使用者體驗”。儘管它是一門很簡單的程式設計語言,但由於現在Web應用程式越來越多,JavaScript的地位也變得越來越重要。不過,在享受JavaScript和衍生的庫的同時,你想過如果沒有JavaScript,你現在的網頁看起來是什麼樣子?
我的部落格使用了jQuery的一些功能,顯然它是基於JavaScript的。我關掉了瀏覽器的JavaScript引擎,開啟部落格,幸好沒有變形——廣告無法顯示,這不是我能控制的。
“文章”菜單不能顯示,因為我是通過jQuery註冊hover事件實現彈出的;“回頂部”的按鈕也無效了,當然這影響不大。
在完成應用JavaScript之前或者之後?),我們應該思考一下如何聰明地使用JavaScript ,從而確保不會因為它的緣故使任何人無法訪問你的網站。這就是非幹擾性的JavaScript背後的核心理念。
為了更好地理解什麼是非幹擾性JavaScript 以及我們為什麼需要它,我們先來看看在JavaScript 程式設計中會碰到哪些不確定性因素:
◆因為某些瀏覽器不支援JavaScript 或它們的支援的JavaScript 版本太老了,這些瀏覽器可能會完全忽略你的指令碼;
◆即使一個瀏覽器可以支援JavaScript ,使用者們也可能會出於安全性的考慮而禁用 JavaScript ,使用者所在公司的防火牆也可能會通過移除所有的 <script> 標籤來阻止 JavaScript 的運行;
◆即便一個瀏覽器支援JavaScript ,它也可能不理解DOM規範中的某些瀏覽器專有特性IE經常被認為是這方面的禍首),這會導致該瀏覽器無法理解你的部分指令碼;
◆即便是指令碼能得到正確地解釋,它也可能要依賴於非常複雜的HTML ,並且/或者依賴於可能以無法預測的方式被改變的HTML ;
◆就算JavaScript指令碼運行在完美無誤的HTML中,你也不能確定你的使用者將會用什麼類型的輸入裝置。許多指令碼只有在使用者使用滑鼠時才會生效,而對那些使用鍵盤的人群則沒有反應許多殘障使用者無法使用滑鼠,而且有的人偏偏喜歡用鍵盤);
◆即使你的指令碼迴避了上述的所有風險而且運行得很好,其他的程式員們也有可能讀不懂它。
如果網頁中的關鍵內容是由JavaScript控制的,一部分使用者將不能正常的使用你的網站,或者丟失重要訊息。
如果某些內容由JavaScript控制,在 JavaScript 無法正常工作的時候,我的方法是通過 CSS 設定好樣式,讓他看起來是正常的。
這裡有一個jQuery滑動導航條的例子Demo1, Demo2),Demo1乍看之下是正常的,但如果關閉了JavaScript,所有的項目會擠到一團,因為所有的清單項目都是絕對位置的,需要由JavaScript運行時動態確定高度;Demo2中只做出了簡單的修正,使得它在JavaScript運行前保持相對定位,就能使它在沒有 JavaScript的狀況下表現正常。
這個例子儘管簡單,但有時候我們就是為了方便也是假定了JavaScript永遠工作)讓JavaScript參與重要元素的排版,這是要盡量避免的。
原文連結:http://beamnote.com/2010/without-javascript.html