非入侵式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还有其余优点。例如,将全部的脚本代码保存在单独的可下载文件中让浏览器可以在本地缓存脚本文件,从而提升网站的性能。
侵入式的作法就是要求用户代码“知道”框架的代码,复用性不高;
侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用(缺点)。但侵入式可使用户跟框架更好的结合,更容易更充分的利用框架提供的功能(优势)。