非入侵式JavaScript針對哪些狀況:設計模式
1.並非每一個人的瀏覽器都支持JavaScript。須要讓每一個人都能看到所有內容,而且無須在瀏覽器中執行代碼瀏覽器
就能使用該應用。緩存
2.一些運行方式很是奇怪的瀏覽器。好比視覺受損的人會使用屏幕閱讀器,一些手機用戶沒法使用含有數據結構
JavaScript的站點。框架
3.JavaScript在不一樣的平臺上運行方式不一樣,IE是形成這一問題的罪魁禍首。須要根據不用的瀏覽器編寫不一樣函數
的事件處理代碼。性能
4.這些事件處理器都會引用全局命名空間中的函數。若是想把其餘類庫集成進來,而這些類庫又帶有相同的函數網站
名稱,那麼顯得麻煩。url
5.這些事件監聽器都會綁定數據結構和行爲,這讓代碼更加難以維護、擴展和理解。.net
非侵入式JavaScript(unobtrusive JavaScript)很好地實踐了JavaScript代碼和標記的分離。能夠將全部須要的腳本代碼打包到.js文件中。若是查看視圖的源代碼,您將不會看到有JavaScript代碼嵌入在標記中。即便查看視圖渲染的HTML標記,也不會看到任何JavaScript代碼,腳本留下的惟一痕跡是一個或多個引用JavaScript文件的<script>標籤。
它遵循了MVC框架設計模式所提倡的關注點分離。它實現了內容顯示(由標記實現)和交互行爲(由JavaScript實現)的分離。除此以外,非侵入式JavaScript還有其餘優點。例如,將全部的腳本代碼保存在單獨的可下載文件中讓瀏覽器可以在本地緩存腳本文件,從而提升網站的性能。
侵入式的作法就是要求用戶代碼「知道」框架的代碼,複用性不高;
侵入式讓用戶代碼產生對框架的依賴,這些代碼不能在框架外使用,不利於代碼的複用(缺點)。但侵入式可使用戶跟框架更好的結合,更容易更充分的利用框架提供的功能(優勢)。