首先,明确一点,本文所说的ASP.NET AJAX框架是指微软为ASP.NET提供AJAX支持的一个基础框架,就说常见的工具箱里的AJAX Extensions一栏。希望各位看官不要混淆了主题。
以前学习ASP.NET编程时认识了这个框架,仅仅使用ScriptManager和UpdatePanel控件,就能完成复杂的AJAX操作(相对于原生的而言),看起来很方便,就像是一般的控件+事件编程一样。园子里的赵劼和李会军很久以前也写过这个框架的系列文章。
后来参加工作了,几乎没有项目使用这个框架,有几个是采用客户端的jQuery为基础,封装扩展的。这次,在一个旧系统中又看到了ASP.NET AJAX的影子,故发个帖希望和大家讨论下。
另外,AJAX Control Toolkit这个微软提供的控件包,现在还有人用吗?我自己几乎没有用过。
老系统中是有,新一代程序员一般都不喜欢用服务器控件,项目里的新程序员逐渐把老程序员的代码给和谐了。
个人觉得服务器控件+ASP.NET AJAX写出来的东西很难维护。纯纯的html、js看上去就知道在干什么,后台只管取数据。
关于服务器控件的争论由来已久。大部分的观点是使用服务器控件会相对影响性能,因为呈现到页面中生成多余的HTML代码。个人认为这种性能的影响没有传说中的那么大,像GridView这种重量级控件除外。
单纯使用ASP.NET AJAX的话,仅使用ScriptManager和UpdatePanel控件,会在前台引用三份资源文件,其实就是微软自己封装的Ajax操作相关代码,以及两小段JavaScript代码。体积不是很大,当然我对这个框架的核心没有仔细研究过。
@青銅碼鬥士:
本身性能影响是不大,但是容易写出很难维护、性能差的代码。
摆脱不了服务器的控件...
如果快速开发的话,速度没啥要求,比如内部员工使用。完全可以用。
如果是考虑速度,那就不能用了。 服务器控件产生多余的html代码,那是他的机制。
看来生成多余的代码,影响性能,是大家不用的主要原因
@青銅碼鬥士: 而且不容易维护
@水墨.MR.H:
不知道这个不容易维护是指什么,能举个示例吗
公司内部用的系统完全可以用服务器端控件去实现,开发速度超快
外网用的项目的话,尽量不要使用,冗余的代码太多了,严重影响网站的速度
之所以其他语言的人诟病.NET程序员就是拖拉控件,微软提供的控件开发模式负有很大责任,不过另一方面看,也是顺应快速应用程序开发的需要。
就像我在一楼所说的,冗余代码没有很大吧...
公司内部用的系统完全可以用服务器端控件去实现,开发速度超快
写js,jquery用的多,而且jquery的ajax很好用,以前还一直用那个asp.net ajax的,现在都用jquery ajax
之前刚工作的时候也用过,但是确实是页面感觉很乱的,不太好维护,最后还是被弃用了。Jquery的插件还是比较给力的。
不好维护,具体点...
如我上面所说,仅仅使用ScriptManager和UpdatePanel,在Visual Studio中,仅在页面中增加几行代码,如果你没有使用内置的太多属性的话。
与jQuery相比,不能自定义Ajax请求各个阶段的细节,这倒是劣势
其实也可以用客户端版本的。