2010-03-24 91 views
0

我在考虑如何构建像twitter这样的广告网站。在服务器或客户端进行筛选?

这意味着,大多数用户不会通过浏览器访问网站,他们应该在PC或智能手机上运行专用客户端应用程序。然后,他们设置一些关于他们喜欢什么样的广告的过滤器。当满足其需求的新职位出现时,客户将发出通知。
要使客户端尽可能实时,它必须在很短的时间间隔内轮询服务器。

问题是,我应该在客户端轮询时在服务器端进行过滤,还是应该将所有新帖子转移到客户端并让客户端进行过滤?

进行服务器端过滤可能会导致服务器的CPU周期过长,但是将每个帖子盲目传输到客户端可能会浪费大量带宽。

只是一个脑游戏。 :)

回答

0

正如其他人指出的那样,发送不会被使用的数据没有意义。人们只想下载他们可以使用的东西。如果有人支付他们的移动数据津贴,并且您的应用向他们展示了2个广告并使用了1000个广告数据,他们将停止使用您的服务。

您可以在数据库端按某些类型进行过滤,也可以在将最终数据发送回客户端之前,通过服务中的某些更深入的业务逻辑进行过滤。

重点是;低数据传输,更快的响应,更快乐的用户:-)

1

在服务器端过滤数据我在其上应用一个简单的过滤器查询(SELECT * FROM tweets WHERE category IN (1,2,3,4,5,))不会花费你太多的性能 - 远远少于将所有可用数据分发给所有客户端。

0

哦,尤其是如果你也考虑部署到移动设备上,/ always/filter在服务器端。也许主要问题是找到适当的数据结构,将新帖子链接到过滤器,这样并不昂贵。你也可以在memcached中保存最常用的条目和过滤器,这样你就不会总是碰到数据库。

根本没有意义将所有的东西都转移到客户端,然后不显示它。

0

我想在服务器上过滤会是更好的方法,这将减少传输的数据量(expecially为智能手机用户,这将是一个巨大的增益)

1

如果通过过滤你的意思是一个SQL查询,那么在服务器上使用它当然会更好。从任何SQL数据库中查询都非常轻,即使您创建了数千个SELECT。