用javascript排序还是用服务器请求排序



可能重复:
在服务器上还是在客户端上排序?

作为我大学项目的一部分,我必须创建一个类似论坛的网站。

所以会有很多帖子。每个帖子都有一个赞栏、评论、一些文本、一些按钮等。此外,用户还可以根据日期、姓名、受欢迎程度等标准对页面中出现的帖子进行排序。

我的问题是我应该如何实现排序:1。在浏览器端使用javascript,或者2。用一个表格或什么的,向服务器发出一个新的请求(这样服务器就必须把排序后的帖子发给我)?

提前谢谢。

两者都有优点和缺点。

一般来说,如果您已经在客户端中拥有了所有可用的数据,那么您将在客户端上提供更具响应性的用户体验排序。

如果你必须获取额外的记录,否则你不会获取这些记录来对客户端进行排序,那么你很有可能会将下载量膨胀到客户端的最佳点之外,通过Ajax在服务器端进行排序会更好。

这是一个很大的依赖项。是否涉及寻呼?数据集的最大大小是多少?只需要对客户端屏幕上单个页面中的记录进行排序?

服务器端排序更适合:

  • 大型数据集
  • 更快的初始页面加载
  • 不运行JavaScript的用户的可访问性
  • 复杂视图业务逻辑
  • 对并发更改的恢复能力

客户端排序更适合:

  • 小数据集
  • 更快的后续页面加载
  • 排序标准可由用户选择或多种选择
  • 一旦你有了这个功能,你就可以很容易地添加过滤器和分页

相关问题:

在服务器上还是在客户端上排序?

相关答案:

需要记住的重要一点是,虽然在强大的客户端和服务器之间平衡负载在理论上可能是个好主意,但只有服务器才能维护一个索引,该索引在每次插入时都会更新。无论客户端做什么,它都是从一组未索引、未排序的数据开始的。

如果在客户端对元素进行排序是可能的/实用的,那么这将是最好的解决方案(减少服务器请求)。然而,情况往往并非如此。

这件事发生在我们身上。我们在客户端对数据进行排序。然后一个新的要求来了。我们需要将排序后的数据放入报告中。因此,我们不需要将排序后的数据直接转换为报表数据源(这将通过服务器端排序实现),而是需要从客户端活动(在排序列事件上)捕获排序详细信息(表到排序、列到排序、排序顺序),然后在按下打印报告按钮时将其发送到服务器,然后在服务器端进行排序。工作量很大。

最新更新