入侵式与非入侵式JavaScript
非入侵式JavaScript针对哪些情况:
1.并不是每个人的浏览器都支持JavaScript。需要让每个人都能看到全部内容,并且无须在浏览器中执行代码
就能使用该应用。
2.一些运行方式非常奇怪的浏览器。比如视觉受损的人会使用屏幕阅读器,一些手机用户无法使用含有
JavaScript的站点。
3.JavaScript在不同的平台上运行方式不同,IE是造成这一问题的罪魁祸首。需要根据不用的浏览器编写不同
的事件处理代码。
4.这些事件处理器都会引用全局命名空间中的函数。如果想把其他类库集成进来,而这些类库又带有相同的函数
名称,那么显得麻烦。
5.这些事件监听器都会绑定数据结构和行为,这让代码更加难以维护、扩展和理解。
非侵入式JavaScript(unobtrusive JavaScript)很好地实践了JavaScript代码和标记的分离。可以将所有需要的脚本代码打包到.js文件中。如果查看视图的源代码,您将不会看到有JavaScript代码嵌入在标记中。即使查看视图渲染的HTML标记,也不会看到任何JavaScript代码,脚本留下的唯一痕迹是一个或多个引用JavaScript文件的<script>标签。
它遵循了MVC框架设计模式所提倡的关注点分离。它实现了内容显示(由标记实现)和交互行为(由JavaScript实现)的分离。除此之外,非侵入式JavaScript还有其他优势。例如,将所有的脚本代码保存在单独的可下载文件中让浏览器能够在本地缓存脚本文件,从而提高网站的性能。
侵入式的做法就是要求用户代码“知道”框架的代码,复用性不高;
侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用(缺点)。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能(优点)。