Language agnostic 在服务器上过滤还是在客户端过滤?
我正在考虑如何建立一个像twitter一样的广告网站 这意味着,大多数用户不通过浏览器访问网站,他们应该在PC或智能手机上运行专用的客户端应用程序。然后他们设置了一些过滤器,以确定他们喜欢什么样的广告。当满足他们需求的新帖子出现时,客户将发出通知。Language agnostic 在服务器上过滤还是在客户端过滤?,language-agnostic,Language Agnostic,我正在考虑如何建立一个像twitter一样的广告网站 这意味着,大多数用户不通过浏览器访问网站,他们应该在PC或智能手机上运行专用的客户端应用程序。然后他们设置了一些过滤器,以确定他们喜欢什么样的广告。当满足他们需求的新帖子出现时,客户将发出通知。 为了使客户端尽可能实时,它必须在短时间间隔内轮询服务器 问题是,当客户端轮询时,我应该在服务器端进行过滤,还是应该简单地将所有新帖子转移到客户端,让客户端进行过滤 进行服务器端筛选可能会导致服务器的CPU周期过长,但盲目地将每个帖子传输到客户端可能会
为了使客户端尽可能实时,它必须在短时间间隔内轮询服务器 问题是,当客户端轮询时,我应该在服务器端进行过滤,还是应该简单地将所有新帖子转移到客户端,让客户端进行过滤 进行服务器端筛选可能会导致服务器的CPU周期过长,但盲目地将每个帖子传输到客户端可能会浪费大量带宽
只是一场脑力游戏。:) 在服务器端过滤数据我对其应用一个简单的过滤查询(
SELECT*FROM tweets WHERE category IN(1,2,3,4,5,)
)不会在性能上花费太多-比将所有可用数据分发给所有客户端要少得多。哦,特别是如果您还考虑部署到移动设备上,/always/filter位于服务器端。也许主要的问题是找到合适的数据结构,将新帖子链接到过滤器,这样就不会太贵。您还可以将请求最多的条目和过滤器保留在memcached中,这样您就不会总是访问数据库
把所有的东西都转移给客户,然后不显示出来,这是完全没有意义的 我认为在服务器上进行过滤是减少数据传输量的更好方法(特别是对于智能手机用户,这将是一个巨大的收益)如果过滤指的是SQL查询,那么在服务器上进行过滤当然会更好。即使您进行了数千次选择,从任何SQL数据库进行查询也是非常轻松的。正如其他人所指出的,发送不使用的数据是没有意义的。人们只想下载他们能用的东西。如果有人支付他们的移动数据津贴,而你的应用程序向他们显示了2个广告,并使用了1000个广告数据,他们将停止使用你的服务 您可以在数据库端按某些类型进行筛选,也可以在将最终数据发送回客户端之前按服务中更深入的业务逻辑进行筛选 重点是,;低数据传输、更快的响应、更快乐的用户:-)