非侵入式JavaScript
外观

![]() |
非侵入式JavaScript[1]是一種將Javascript從HTML結構抽離的設計概念,避免在HTML標籤中夾雜一堆onchange、onclick等屬性去掛載Javascript事件,讓HTML與Javascript分離,依模型-视图-控制器的原則將功能權責清楚區分,使HTML也變得結構化容易閱讀。
非侵入式JavaScript是在网页中使用JavaScript的一般方式。该名称并非正式定义,它的基本原则包括:
- 將网页的行为层和表现层分离开[2];
- 是解决传统JavaScript编程问题(浏览器呈现不一致,缺乏扩展性)的最佳实践;
- 为可能不支持JavaScript高级特性的用户代理(通常是浏览器)提供渐进增强的支持[3]。
新範式
行為與標記的分離
名前空間
正常退化
最佳實務
非侵入式Javascript的本質是增加了分離的行為層概念,而且這範式的提倡者認同一些相關的原則,如下列:
- DOM腳本,即遵循W3C DOM和事件模型,並避免使用某一瀏覽器特定的擴充功能。
- 功能檢測,即在使用特定功能之前先檢查是否支援;對比相反於過去只檢測用戶端使用的瀏覽器(版本)。
- 更一般來說,JavaScript最佳實務通常與其它編程語言(例如封裝和抽象層,避免全局变量,有意義的命名法約定,使用適當的设计模式式和系統測試)平行。這些原則對大規模軟體工程開發非常重要,但過去的JavaScript設計過程中並不受重視。這些原則的採行,使JavaScript被認為是從“玩具”的腳本語言,轉變為正規編程發展工具的重要組成。
参见
参考
- ^ ASP.NET MVC 3高级编程. 清华大学出版社. 2012-06. ISBN 978-7-302-28675-2.
- ^ Keith, Jeremy. Behavioral Separation. 2006-06-20.
- ^ Olsson, Tommy. Graceful Degradation & Progressive Enhancement. 2007-02-06.