【问题标题】:Sorting and Filtering on the client side. How should approach this?在客户端进行排序和过滤。应该如何处理?
【发布时间】:2019-09-05 04:13:21
【问题描述】:

来自后端的 GraphQL API 提供大约 10000 多个项目的列表信息(标准化数据)(即联系信息:姓名、职务、公司、电话号码、电子邮件...)

在前端收到此数据后。我想按字段排序并按关键字搜索和过滤。

我正在考虑的方法是,一旦通过 graphQL API 将数据接收到组件,我就可以触发 onclick 事件来调用函数以在组件内进行排序等。

这是一种幼稚的方法吗?有没有更好的方法来处理这个问题?

【问题讨论】:

    标签: reactjs graphql relay


    【解决方案1】:

    我想处理排序的最佳方法应该是在服务器端处理它。如果你真的想在客户端这样做,你应该首先显示数据,然后在用户更改排序或关键字时触发onChage

    我建议您使用lodash library: https://www.npmjs.com/package/lodash 进行排序和过滤。

    这里有一些有用的链接,可以告诉您有关服务器端和客户端排序的更多信息。

    https://www.c-sharpcorner.com/forums/difference-between-client-side-paging-and-server-side-paging

    Pagination: Server Side or Client Side?

    Where data sort should be done ? Server or client?

    https://softwareengineering.stackexchange.com/questions/249897/web-app-filtering-information-client-side-vs-server-side

    【讨论】:

    • 如果并发用户是 50 个人,他们正在向后端请求排序和过滤,这不会导致服务器端过载,使其变慢吗?
    • @LeeDongyobEric 50 个请求实际上什么都不是。你应该让你的服务器处理更多的请求。当你有很多数据(比如超过一百万并且很快就会变得那么大)时,你应该总是向服务器端发出请求并在你的数据库中过滤和排序它们(记住使用分页,因为它会更快,因为您只发送 20-30 条记录)
    • 问题:您发送了 20-30 条记录,但同时也在对数百万数据进行排序,当您有数百万数据要排序时,这不会导致服务器迟钝吗?然后发送 20-30 条记录?
    • @LeeDongyobEric 数据库将比 javascript 更快地处理
    • @LeeDongyobEric 但无论如何,您仍然可以在客户端执行此操作,请务必使用该库,它会对您有很大帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2016-09-21
    • 2019-05-25
    • 1970-01-01
    • 2013-05-30
    相关资源
    最近更新 更多