繁体   English   中英

服务器端处理还是客户端处理?

[英]Server side processing or client side processing?

我开发了一个比较网站,用于比较印度在线销售的任何产品。 目前,该网站完全是客户端:-

  1. 接受用户输入。
  2. 提出20-30个AJAX请求并从所有主要的在线商店获取结果。
  3. 使用一些客户端脚本对结果进行排序并以最合适的方式显示结果。

缺点:

  1. 我的客户端代码可供所有人使用。 它的JavaScript。
  2. 更容易出现浏览器错误。
  3. 不强壮。

使其成为服务器端后的缺点:-

  1. 考虑到我网站的流量,服务器负载将增加,因为它将与客户端进行更长时间的互动。
  2. 从各个网站获取价值最多可能需要10秒(最多)的时间。 如果我在高峰时间每分钟有500位访问者,请考虑负载。

好处:-

  1. 我的密码安全无虞
  2. 在客户端的处理将是最少的。 即使在手机和其他设备上也可以轻松工作。

我想在实际实施之前分析这些问题。 有人可以建议我选择我的网站吗? 哪种方法对我更好?

如果我的问题不明确,请发表评论。

首先,这是一个非常好的问题。

它完全取决于您网站的处理量和交易量,如果您确实希望扩展应用程序,我希望您做对了! 从一开始就做。

停止将业务逻辑放在客户端上**不要期望在进行比较呼叫时消耗最终用户的网络带宽:),也不要期望他拥有最佳的带宽。

对服务器场进行负载平衡,确保服务器场已正确进行负载平衡,并且使用多线程而不是在单线程中进行比较

缓存结果 **如果您是在服务器端执行此操作,则如果用户a和用户b要求相同的比较,则实际上可以从用户b的缓存中提取它,而不必再次执行这些请求。

可用性向用户显示比较进度,而不是显示加载旋转图像:)

希望能帮助到你

我看不到您为什么要选择“更容易出现浏览器错误”。 如果将正确的库/代码发送到浏览器,则Javascript将按照您希望的方式运行。

您可以看到什么浏览器正在执行请求,并向其发送正确的代码(读为:如果您有一些可以在FF&Opera中运行的代码,但不适用于IE,请编写该代码的两个版本,每组浏览器一个。)有一些库可以帮助您做到这一点。

另外,比较不是服务器端应该做的任何事情。 因此,如果您的网站上有很多流量,则客户端工作应该适合这种工作。

关于代码保护,您是对的。 服务器端不会让任何人读取您的代码。 因此,您必须确定服务器负载是否比阅读代码的人更重要。

另外请记住,您可以混淆代码。 我知道这不是最好的解决方案,但是它将使很多人不读它。

编辑:

将其设置为服务器端将使所有设备上的工作正常(如您所说)。 但是您需要做一些事情,以保持服务器的负载不会达到100%。

Chandra Sekhar Walajap已经向您介绍了使用某种缓存获得结果的好处。 我个人走得更远,因为您只是在抓取所有这些页面。

我将创建一个刮板,假设该刮板每24小时运行一次,并提取/报废每种产品。 然后,我将所有这些产品保存在某个地方 (在数据库中或您想要的任何位置读取)。 这样,当用户请求比较商品A和商品B时,您无需获取/取消所有网站,而只需要在保存它们的地方查找这些商品即可。并显示给用户。

请注意,只有在有很多用户比较大量产品的情况下,这才会保留大量带宽。

另一方面,如果您有少数用户只搜索几种产品,那么采用这种解决方案根本不会给您带来任何好处,因为您知道,每24小时从所有站点中获取所有内容的使用率很高,在CPU和带宽上。

关于服务器负载:我不能说。 它取决于太多的事情,几乎是不可能说的。 您需要考虑要剪贴的网站有多少,每个网站上有多少个产品? 您正在使用什么硬件? 通过使用cURL编写一些简单的示例并从其中一个站点获取所有内容,您会更好。 然后查看它如何影响性能并做出决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM