在服务器端还是在单页应用程序中处理搜索功能?

3

大家好,我是一名IT程序员!

我目前正在开发一个SPA项目,其中主要的模型类是一个简单的用户(User)。

以下是该模型类的架构示例:

User = {'name': 'christopher', 'age': '21', 'nationality': 'Denmark'};

对于我的问题,我不寻求任何代码或示例。
我正在实现一个搜索功能,用于搜索存储在服务器上的所有用户。
因此,我的应用程序将为包含用户在搜索字段中输入的任何内容的用户提供服务,在用户点击搜索按钮并提交后,我应该做出以下选择:
- 调用“获取所有用户”请求到服务器,然后在获取所有用户之后在SPA中进行过滤。 - 或者,在服务器端实现此搜索功能,过滤所有内容并在请求结果中提供服务。
提前致谢!

取决于有多少用户。 - Tarun Dugar
当然,假设我们有一万个用户。 - ChristopherMortensen
然后在后端执行它。如果您同步筛选如此多的条目,很可能会导致用户界面冻结。 - Tarun Dugar
2个回答

1
直到几年前,通常的规则是尽可能将逻辑放在服务器端。现在,随着更好的JS技术和浏览器引擎的发展,有可能(并且在某些情况下也是可取的)将逻辑放在客户端。
服务器端逻辑的优点: - 安全性。任何人都可以读取你的Javascript(即使它被压缩)。 - 性能。处理大数据集时,浏览器会变得更慢。 - 浏览器。你必须处理各种不同的浏览器。虽然新的js和css库已经消除了很多“旧问题”,但仍有惊人数量的人在使用旧版本的IE。 - 可扩展性。你可以增加服务器(特别是虚拟服务器)的处理能力,但你不能让用户的浏览器运行更快。
客户端逻辑的优点: - 更好的用户体验,因为你有更好的响应速度(每次交互不需要通过网络进行往返),以及更好/丰富的用户界面(例如带有Bootstrap的Angular.js)。 - 可扩展性,因为用户的浏览器正在执行所有工作,这样可以节省服务器的处理。 - 较低的网络成本,因为你不必发送相同数量的数据。

这些只是我脑海中的想法。在你的情况下,我认为尽可能将逻辑放在服务器端会更好。这样可以避免使用大量数据处理导致浏览器冻结,并且如果需要,你可以增加服务器的能力。


0
作为一般规则,除非必须这样做,否则不应该通过网络传输数据。在您的情况下,当客户只需要一个小子集时获取所有用户将是对他们带宽的可怕滥用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接