|
|
51CTO旗下网站
|
|
移动端

8.1.2 非侵入式JavaScript

《ASP.NET MVC 3高级编程》第8章AJAX,本章对ASP.NET MVC 3中的AJAX特性进行了快速扼要的介绍。学习完本章,应该知道这些特性主要依赖于开源jQuery库和一些流行的jQuery插件。本节为大家介绍非侵入式JavaScript。

作者:孙远帅 译来源:清华大学出版社|2012-07-03 09:37

8.1.2  非侵入式JavaScript

在Web的早期阶段,也就是在jQuery出现以前,在同一个文件中混杂JavaScript代码和HTML标记是非常流行的做法。将JavaScript代码作为某个特性的值放入HTML元素中也是再正常不过的了。您可能见过下面这样的onclick处理程序:

  1. <div onclick="javascript:alert('click');">Testing, testing</div> 

当时您可能会在标记中嵌入JavaScript代码,因为没有更简单的方法可以用来捕获单击事件。尽管嵌入的JavaScript代码可以实现事件捕获,但是该代码不够整洁。jQuery改变了这种状况,因为jQuery提供了查找元素和捕获单击事件的更好方法。现在可以从HTML特性中移除JavaScript代码了。事实上,可以将JavaScript代码与HTML完全分离。

非侵入式JavaScript(unobtrusive JavaScript)很好地实践了JavaScript代码和标记的分离。可以将所有需要的脚本代码打包到.js文件中。如果查看视图的源代码,您将不会看到有JavaScript代码嵌入在标记中。即使查看视图渲染的HTML标记,也不会看到任何JavaScript代码,脚本留下的唯一痕迹是一个或多个引用JavaScript文件的<script>标签。

您可能已经发现非侵入式JavaScript之所以具有吸引力,主要是因为它遵循了MVC框架设计模式所提倡的关注点分离。它实现了内容显示(由标记实现)和交互行为(由JavaScript实现)的分离。除此之外,非侵入式JavaScript还有其他优势。例如,将所有的脚本代码保存在单独的可下载文件中让浏览器能够在本地缓存脚本文件,从而提高网站的性能。

非侵入式JavaScript也支持在站点上使用渐进增强(progressive enhancement)的策略。渐进增强关注的是传递的内容。只要查看内容的设备或浏览器支持像脚本和样式表这样的特性,页面就会展现更高级的内容,使图像具有动画效果等。Wikipedia对渐进增强有一个良好的概述,参见http://en.wikipedia.org/wiki/Progressive_enhancement

ASP.NET MVC 3对JavaScript采用非侵入式的方法。框架将元数据放入HTML特性中,而不是将JavaScript代码注入视图来实现某种功能特性(像客户端验证)。使用jQuery技术,框架能够查找和解释元数据,然后将行为附加到所有使用外部脚本文件的元素上。由于有了非侵入式JavaScript工作,才使得ASP.NET MVC的AJAX特性支持渐进增强。如果用户浏览器不支持脚本,访问的站点也仍然会正常运作,(但不会提供好的功能,像客户端验证等。

为了了解控制器操作中的非侵入式JavaScript的工作原理,下面首先学习如何在MVC应用程序中使用jQuery。

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Reversing:逆向工程揭密

本书描述的是在逆向与反逆向之间展开的一场旷日持久的拉锯战。作者Eldad Eilam以一个解说人的身份为我们详尽地评述了双方使用的每一招每一...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊