一个更好用更高效的Ajax框架XCallback

来源:互联网 发布:淘宝如何筛选发货地 编辑:程序博客网 时间:2024/06/07 19:46

 

      今天来特意和大家

分享一个自认为很不错的ajax的框架XCallback,它是对callback的扩展 ,笔者曾经用过好几款ajax框

架,最早用UpdatePanel  后来处于性能的考虑决定废弃,废弃原因有4:

1.网页首次要加载310kb的axd文件,占网速也占用浏览器的载入时间。

2.效率很低-违背了ajax的初衷,回传了viewstate和所有控件的值

3.不够灵活,面对复杂而多变的项目开发,不是用几个拖拽就能解决问题,编程仍然是解决问题的核心

,但是你想在他强加的思想下做出改变又是何等困难 。

4.部署也不易,也许有人会说,把那两个程序集传到bin下就行了  ,可是无论我怎么整,ajax效果总是

失效,也许这与ajax工具包早期版本有关

 这是我放弃UpdatePanel的原因

后来听同学说ajaxpro也不错,ok 就用了 ,对他这种简单的客户端调用服务器端的方法感觉很惊奇,想

看看ajaxpro的源码,可是reflector进入了更新的死路,更新了N次都没成 [ 这里的各位如果谁的

reflector能用 请给我发一个chenxumi@hotmail.com ] 看ajaxpro的风格潜意识里猜测好像使用了反射

技术。用了一段时间,但是面对实际问题时,最终还是弃用,弃用原因有:

1、ajaxpro会生成4个ashx文件,感觉它应该生成1个文件比较好,因为大家都知道IIS有并发连接数的限

制,尤其是虚拟主机更是规定在一定范围内[记得150元的主机大多规定在200个并发连接数],而且ashx

文件和服务器的连接时效很长,让我觉得ajaxpro并不完美[也许编程珠玑看多了,要求得过于苛刻,虽

然我们现在的软件环境和硬件环境已经不像以前的程序员那么艰苦了,但是对于web这种讲究高性能的程

序还是较真要好] 

2、我曾跟踪调试ajaxpro发送数据的过程,感觉的有些慢,只是感觉而已,也没仔细研究具体代码,只

是自己一面之词,不知大家有没有这种感觉,估计这是个有争议的地方

3、ajaxpro是小巧吸引了我 ,至今还记得23kb小巧精致 正合吾心,可是当我要面对动态加载一些数据

控件时,他却根本做不到, 通过反射机制的ajaxpro反过去执行类里的特定控件可不是容易事,所以即

使在partial里用ajaxpro访问cookie也只能这样HttpContext.Current.Request.Cookies

["name"].Value.ToString();得到,ajaxpro现在的确也支持dataset这些复杂的数据类型,今天我也访

问过他们网站(http://www.ajaxpro.info),也有很多对应的例子,可是实现dataset可不是简单事,服

务器端代码的编写,客户端代码的编写,都是复杂的繁杂的而且有些技术含量的东西,不利于快速的项

目开发,等到了ajaxpro.2 的时候程序集已经增加到140kb了 ,我怀疑是不是内置了js库呢,或是我下

了山寨版的ajaxpro ?

终于ajaxpro废弃了 

第三款ajax框架JQuery都说小巧优雅,于是用了,可是失望,在纯ajax方面比ajaxpro好不了多少 ,

120kb的加载量也是我不能忍受的

第四款也是刚看到了,原来还有个Anthem.net  惊鸿一瞥了一下 ,失望,又是个模板式的东东,不过据

反映在服务器端方法的执行上和加载量上有优势 ,这点让我心动。

但是事实上还有更好的一款ajax框架,他几乎具备了以上的所有优点和不具备以上的所有缺点

他就是XCallback 是对callback的扩展

他很简单很优雅很高效,通过return的分割就完美实现了在一个方法里共存ajax调用前的方法和数据返

回后执行的方法,这样有很多优点 ,大家看看下面两幅图 ,看看是不是简单,如果觉得ajax实现的很

简单请继续,如果还是觉得麻烦 ,没什么价值,也不强求你看下去了  

 

对应源码和在线实例都在这里

http://chenxumi1.vhost015.cn/

 

这是前台页面,数据从服务器返回后将执行return之后的函数体

 

 

这是后台页面,只需初始化InitAjaxStyle()就可完成服务器端函数调用