在服务器或 SPA 处理搜索功能?
Processing a search-function at the server or at the SPA?
各位程序员大家好!
我目前正在做一个 SPA 项目,其中的主要模型 class 是一个普通的老用户。
架构示例。
User = {'name': 'christopher', 'age': '21', 'nationality': 'Denmark'};
对于我的问题,我不寻求任何代码或示例。
我正在实现一个搜索功能,用于搜索存储在服务器上的所有用户。
所以我的应用程序将为包含用户在搜索字段中写入的任何内容的用户提供服务,在用户点击搜索按钮上的提交之后,然后我应该做出以下选择:
- 向服务器调用'get-all-users'请求,获取所有用户后在SPA中进行过滤
或
- 在服务器端实现此搜索功能,过滤所有内容并在请求结果中提供服务。
提前致谢!
直到几年前,一般规则是在服务器端放置尽可能多的逻辑。现在,有了更好的 JS 技术和更多的浏览器引擎,将逻辑放在客户端是可能的(在某些情况下是可取的)。
服务器端逻辑的优点:
- 安全。任何人都可以阅读您的 Javascript(即使它已缩小)
- 性能。当您处理大型数据集时,浏览器会变慢。
- 浏览器。您将不得不处理各种数量的浏览器。尽管新的 js 和 css 库已经消除了大部分 'the old problems',但仍有大量人仍在使用旧版本的 IE。
- 可扩展性。您可以提高服务器的处理能力(尤其是虚拟服务器),但无法让用户的浏览器运行得更快。
客户端逻辑的优点:
- 更好的用户体验,因为您有更好的响应能力(不需要每次交互都通过网络往返)和 better/rich 用户界面(例如 Angular.js 和 bootstrap)
- 可扩展性,因为用户的浏览器正在完成所有工作,它可以节省您的服务器处理。
- 网络成本更低,因为您不必发送相同数量的数据。
这些只是我的想法。在您的情况下,我想我会在服务器端放置尽可能多的逻辑。您不太可能因大量数据处理而冻结浏览器,并且您可以在必要时增加服务器功能。
一般来说,除非万不得已,否则不应通过网络传输数据。在您的情况下,当您的客户只需要一小部分时获得所有用户将是对他们带宽的严重滥用。
各位程序员大家好!
我目前正在做一个 SPA 项目,其中的主要模型 class 是一个普通的老用户。
架构示例。
User = {'name': 'christopher', 'age': '21', 'nationality': 'Denmark'};
对于我的问题,我不寻求任何代码或示例。
我正在实现一个搜索功能,用于搜索存储在服务器上的所有用户。
所以我的应用程序将为包含用户在搜索字段中写入的任何内容的用户提供服务,在用户点击搜索按钮上的提交之后,然后我应该做出以下选择:
- 向服务器调用'get-all-users'请求,获取所有用户后在SPA中进行过滤
或
- 在服务器端实现此搜索功能,过滤所有内容并在请求结果中提供服务。
提前致谢!
直到几年前,一般规则是在服务器端放置尽可能多的逻辑。现在,有了更好的 JS 技术和更多的浏览器引擎,将逻辑放在客户端是可能的(在某些情况下是可取的)。
服务器端逻辑的优点:
- 安全。任何人都可以阅读您的 Javascript(即使它已缩小)
- 性能。当您处理大型数据集时,浏览器会变慢。
- 浏览器。您将不得不处理各种数量的浏览器。尽管新的 js 和 css 库已经消除了大部分 'the old problems',但仍有大量人仍在使用旧版本的 IE。
- 可扩展性。您可以提高服务器的处理能力(尤其是虚拟服务器),但无法让用户的浏览器运行得更快。
客户端逻辑的优点:
- 更好的用户体验,因为您有更好的响应能力(不需要每次交互都通过网络往返)和 better/rich 用户界面(例如 Angular.js 和 bootstrap)
- 可扩展性,因为用户的浏览器正在完成所有工作,它可以节省您的服务器处理。
- 网络成本更低,因为您不必发送相同数量的数据。
这些只是我的想法。在您的情况下,我想我会在服务器端放置尽可能多的逻辑。您不太可能因大量数据处理而冻结浏览器,并且您可以在必要时增加服务器功能。
一般来说,除非万不得已,否则不应通过网络传输数据。在您的情况下,当您的客户只需要一小部分时获得所有用户将是对他们带宽的严重滥用。