我们应该使用服务器端网格还是Javascript网格?

Should we still use a server side grid or a Javascript grid?

本文关键字:网格 Javascript 服务器端 我们      更新时间:2023-09-26

我们在工作中有一个关于如何处理网格中的数据的大讨论。

有些人更喜欢使用服务器端网格,它可以很容易地从服务器绑定并使用Ajax或不使用Ajax更新。有些人更喜欢只使用调用WebService的Javascript来填充Javascript/html网格。

从专业的角度来看,哪一个是最好的生产力,可测试性和可维护性?

我们正在使用WebForm . net 4.0和Jquery。

我肯定会说是JavaScript控件。
我只是认为,在这些事情上,微软、Telerik和所有其他的家伙已经表明他们远远不如开源社区(主要是基于jquery的解决方案)。

AJAX和异步请求已经存在多年了,但直到最近微软才推出MVC来支持它(据我所知,它们仍然没有达到应有的水平)。

的另一个优点是客户端控件的种类要比服务器端多得多,因此您可以找到一个完全适合您的控件。如果你需要它做一些不开箱即用的事情,它是开源的——你可以自己实现它。我正在使用jqgrid,我对它很满意。

我和你的情况一样。最后,我选择了服务器端GridView,因为它很容易绑定数据。另一方面,每次刷新页面更新GridView都很烦人,所以我最终使用了AJAX更新面板的异步回发,以保持一切顺利。

Ajax将是答案,因为没有人喜欢过时的post back和完整的页面重新加载…ASP。. NET MVC帮助很大,因为它甚至没有旧的post - back和web表单页面生命周期的概念。

我们也在同样的情况下,仍然在考虑如果我们使用DevExpress MVCGridView扩展或Telerik一个,或者像ExtJs这样的完整javascript解决方案,它很酷,很快,但似乎不支持单元格合并,这对我们来说是一个重要的功能。

我们以前争论过这个问题。

关于asp网格的伟大之处在于,它们基本上是开箱即用的排序、分页等。而且你不需要处理javascript,这是我个人讨厌的。但它们更像是一种蛮力解决方案。我的意思是,从数据库中获取数据,重新绑定,重建页面,然后将其发送回来只是为了对列进行排序,这是非常低效的。

即使在网格周围有一个UpdatePanel,也可能有大量的数据要通过网络传递,并且大量的数据访问只是为了对表进行排序或分页。

Javascript更丑,但效率更高。首先,排序(可能还有分页)可以完全在客户机上快速处理,从而减少服务器负载。但是,你必须为此编写自定义功能,除非你想使用第三方JS表组件。

另一个选择是使用ASP网格,但是用javascript动态修改功能。这样,您的服务器端代码仍然可以利用简单的绑定和表生成。

我们决定按原样使用ASP网格。如果我们遇到性能问题,我们将改变我们的方法。但是,如果想要快速完成某些事情而又不那么令人头疼,那么您就必须使用内置控件