ASP.NET AJAX的客户端框架是鸡肋?

    当初开始学习Atlas的时候,处于兴趣用客户端的类库实现了一个字典选择功能,涉及到了WebService的调用和Sys.Data下面的一些类和控件:ListView,DataSource,DataView,和自定义的PropertyFilterEx,当时我还写过一篇随笔。如今,Atlas变成了Asp.net 2.0 AJAX,客户端功能框架变成了Value-Add。我自然要随着升级一番:
  1. 另外安装Ctp ValueAdd库,自己添加脚本引用。
  2. 自定义PropertyFilterEx语法完全改变了!这个不难,原来就是把PropertyFilter复制过来修改了一下而已,现在依此办理;
  3. 服务器端WebService,添加Attribute,好办,但是屡试屡败,但是却没有错误信息!后来改为PageMethod成功,不知作何解释?
  4. DataTable的序列化和传递有问题,搜了一番参照Dflying Chen的文章调试成功。
  5. 调用WebService的OnTimeOut回调函数取消了
  6. ListView的moveXXX函数调用不成功,查询get_canMoveNext()=true,直接调用set_dataIndex()依然失败!selectRowCss外观没有应用,不能选择行。
    其间,经过长时间非人的折磨,最终没有修改成功,我选择放弃了。另外用GridView+UpdatePanel,半天时间实现了全部功能。做一比较,发现AJAX客户端功能目前实为鸡肋:
  1. 需要JavaScript调用,开发难度大,易出错。
  2. 调试困难,那是相当困难。
  3. 客户端控件可控性差不容易定制,如果自己实现实在是需要太多的工作量。
  4. 类库变化太大,而且Bug太多。
  5. 就我做得功能来看,客户端的绘制相当的慢,10来条数据绘制出来要几秒中,和用UpdatePanel的部分刷新比起来,反而落于下风,后者几乎感觉不到。失去了使用价值。
    AJAX本来是锦上添花的功能,如果因为这些缺点而难以使用,那么就不如不用,不能为了AJAX而AJAX。或许等将来的版本能让我改变看法,我很期待。
posted @ 2006-11-21 22:37  柒零壹  阅读(2762)  评论(21编辑  收藏  举报