其实你的问题就是web开发下,客户端编程(js)好,还是服务端code behind编程好(比如asp.net)。
对于你说的js+webservice的方式,我不敢苟同,这种方式显然受制于webservice的传输。不是一种很好的方法,也不够灵活。在客户端编程,如果要和服务端交互,ajax绝对是首选。
我的经验:
1. js编程的优点很明显,用户体验十分好,比如ajax(绝对是客户端服务端交互首选)。所有的界面都是无刷新,让用户在web上能体验到winform一样的操作。当然,这也会对服务器和网络环境有很高的要求。
缺点呢,就是效率低。这个效率低体现在很多方面
1)首先,js做为一种解释型语言,肯定没有c#或者java高级编译语言执行效率高;
2)其次,js(ajax)开发成本和效率,以及维护效率都很低。即使现在比较流行的jquery等框架,也绝对没有asp.net或者java开发框架成熟稳定。开发人员可能会将大部分事件都用在处理代码事件绑定,控件编写上;相比较asp.net和java等成熟型框架,开发人员能够将自己的工作中心,完全转移到业务逻辑上来。对于低级代码的编写,我们对js(ajax)显然更要多多的操心。可想而知,如果一旦系统出了问题,维护起来,很麻烦。举个最简单的例子:垃圾回收。js 经常会出现内存溢出错误。程序运行中此问题甚至不能重现。有时候为了改变这个情况,不得不重新编写架构。耗费大量的时间于技术完善上。有的时候在服务器编程很容易实现的功能,可能要花费很长的时间才能通过客户端编程js实现。
2. 对于服务器编码。应该说正好和js客户端编程相反。
优点:框架成熟,开发和维护效率高。程序员可以把大部分的精力集中在业务层面上。对于企业级开发来说,大有好处。在基于例如.netframe work的框架下,很多东西都是现成的,很容以实现。这个的优点我就不多说了,大家都知道。
缺点呢,我想也是显而易见的,和服务器交互频繁使得用户体验差,由于使用了过的viewstate等服务端容器,使得web页面臃肿不堪,降低页面效率。 另外,也正是由于服务端编程的优点------成熟的框架,使得衍生出其另一个缺点-----灵活性低。 很多东西虽然有现成的,但是我们想个性化定制其功能的时候,不得不受制于控件的功能(当然,这个可以通过编写自定义控件进行改观)
我的观点:对于web开发来说,单纯的认为js(ajax)开发好,或者认为服务端开发好的,都是片面的。最好的网站一定是兼顾 开发,维护,成本,用户体验,效率,资金 等多方面的问题。显然,只有将客户端和服务端开发合二唯一,各自取其优点,才能做出最令人满意的web 应用程序。在功能,用户体验和系统维护可靠性上,才能说是上品。
把业务逻辑和主要的编程都采用服务端编程模式,这样利于快速开发和后期维护,也能减低开发成本;而在用户界面和用户体验上使用js(ajax)的开发模式,有利于提高客户的满意度和产品的口碑。所以,可以看到,以微软.net为例,把前台显示和后台代码分离进行开发,一直是asp.net不断的追求。这也是我们普通的程序开发人员需要追求的。你若是仔细想想,客户端开发和服务端开发,微软已经为我们想到了:怎么让这两个东西能够融合在一起呢?他们已经给出了最好的答案。
联系客服