搜索过滤器,我应该在客户端还是服务器端执行?

use*_*739 4 javascript php mysql jquery filtering

我有一个返回结果列表的搜索表单,我还有一个过滤区域,用户可以过滤结果(价格等).我的问题是,我应该通过客户端javascript进行过滤还是应该在MYSQL选择中进行服务?

问题是,过滤将有相当多的级别,所以当把它放入一个mysql时,选择可能变得相当繁琐.

小智 7

这取决于如果您正在使用分页或不

如果您没有对搜索结果进行分页,但是将每一行返回给客户端,则应该过滤客户端,因为您知道所有数据都是客户端.

如果您的搜索结果是分页的,只显示第一个eg10搜索结果,则需要在服务器端完成一个过滤器,以包括尚未在客户端中的所有分页行.


Rom*_*man 6

这实际上取决于您的应用程序的性质:

  • 有多少数据?
  • 你多久查询一次?
  • 页面多久需要重新加载一次?

即 facebook 向您发送您的整个朋友姓名列表,因此当您在评论中键入某人的姓名时,客户端应用程序会注意到它(并建议您自动完成)。它是在客户端完成的,因为:

  • 整个数据量比较小(1000个朋友名*每个20字节~= 20kB的数据,比网站上的大多数图片都少,gzip它甚至更少)
  • 它被查询了很多,几乎每次有人在文本框中按下一个键
  • 应用程序中的大部分事情都可以在不离开的情况下完成,因此重新加载页面:数据只需加载一次。

一般来说,让客户端做更多的工作意味着您的应用程序可以更轻松地扩展,因为您获得的用户越多,您获得的“CPU 能力”就越多。


Ole*_*lev 0

它应该是 SQL 中的服务器端。

类似 SELECT * WHERE 价格 > 100

如果您在客户端执行此操作,则需要从服务器向客户端发送大量数据。

  • 另一方面,根据数据大小,利用客户端可能是有利的,因为数据只需传输一次。 (4认同)