我有一个返回结果列表的搜索表单,我还有一个过滤区域,用户可以在其中过滤结果(价格等)。我的问题是,我应该通过客户端javascript进行过滤还是应该在MYSQL选择中进行服务?
问题是,过滤会有很多级别,所以当把它放到mysql中时,选择可能变得非常繁琐。
答案 0 :(得分:7)
这取决于您是否使用分页
如果您没有对搜索结果进行分页,但是每行返回客户端,则应该过滤客户端,因为您知道所有数据都在客户端。
如果搜索结果是分页的,只显示第一个例如10个搜索结果,则需要在服务器端完成过滤,以包括尚未在客户端中的所有分页行。
答案 1 :(得分:4)
这实际上取决于您的应用程序的性质:
即,facebook会向您发送您的整个朋友姓名列表,因此当您在评论中键入某人名称时,客户端应用会注意到它(并建议您自动完成)。它完成了客户端,因为:
一般来说,让客户做更多工作意味着您的应用程序可能更容易扩展,因为您获得的用户越多,您获得的“CPU功率”就越多。
答案 2 :(得分:0)
它应该是SQL中的服务器端。
像SELECT * WHERE价格> 100
如果在客户端执行此操作,则需要从服务器向客户端发送大量数据。
答案 3 :(得分:0)
如果你把它放在客户端,你应该意识到后果。
您可能需要通过Internet传递的数据远远超过您想要的数据。
您可能无法使用索引或缓存等MySQL的优点来优化结果。这些精心设计和测试的功能总是比你的好。
但是,如果您对这些后果感到满意,我认为在客户端进行此操作是完全可以的。