自己写一个表格组件,数据有2000多条甚至更多,常用的排序是在前端排,还是在后端排?

如题,是把数据全部请求过来,然后前端排序(展示的时候是有分页的),还是后端排好了传过来?

需求就是客户点击排序可以按不同的,排序要求来排,而且是有分页的、

阅读 9.8k
9 个回答

这个必须得后端来排序。
第一是有分页的,如果要排序有分页的情况下想要前端排序就需要把所有数据全部都取过来,比如我每页显示50条,数据库共总有10000条,那我要把10000条全部取出来,在前端排序,这不是浪费流量浪费cpu么。
第二,你前端排是需要自己写排序函数,用户点击不同列可以根据不同列排序,你这个要写对应函数,后台就不一样了,从数据库里查询的时候直接可以让数据库去做这个排序的事情,甚至是多字段组合排序,不关sql还是nosql基本都支持排序(mysql,mongodb)
所以排序分页还是让后端去做吧

如果你是前端你就让后端排,如果你是后端你就让前端排,如果你是老板 你想让谁排就谁排(开个小玩耍)

我觉得5000条 前端 后端都能满足排序这个功能
具体看你业务范围
后端时时更新的 那就后端排
不然你的数据只停留在接收的那一瞬间

比如 5分钟 看到了20页 现在想看第21页 很可能数据已经变掉了 21页的数据发生在5分钟之前

一般都是后端排序。这样的话如果以后数据量变大了,不需要重新修改。

常用的都是后端排好。不过5000条以内都可以试试在前端排序,现在的主流浏览器性能都还行的。

前端排序吧,你只请求一页的数据能有多少。

从这需求来看应该是后端排序啊。 除非你一次载入的是数据库所有数据,不然前端排序显示是不准确的。

如果数据简单,数据量少且有上限,不需要多表查询之类的,那前端排也还勉强可以。

但,不管怎么样,还是后端排吧,没多什么工作量的,拓展性好多了。

我个人觉得 前后端都应该可以排序,
首次加载数据时,后端根据固定的排序规则排好序,发送给前端,当前端需要做自定义排序时,在前端排序效率会更高吧,不需要往后台请求数据,不过这个看情况,有些时候需要针对所有数据排序那只好后台做了,如果只是对当前页数据排序,就没必要往后台请求增加服务器压力,况且这样速度更快体验更好,像用过easyui的table插件,或者,jquery.datatable插件的应该都知道吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题