【问题标题】:Node.js - Fetch from server or client side? [closed]Node.js - 从服务器或客户端获取? [关闭]
【发布时间】:2019-03-19 03:38:20
【问题描述】:

让我看看我是否可以正确解释这一点。

我正在制作一个网站,用户可以在其中保存一些信息(在本例中为电影信息)。

我从第三方 api(电影数据库)获取所有电影数据。

所以我想知道这些场景中哪一个是最好的性能明智的?

  1. 向我的客户端发送空视图并让 javascript 从 TMD 获取电影 页面加载 API 并将它们呈现到页面上?

  2. 从 TMD API 获取数据并将其渲染到我的视图中并将其发送到客户端?

我认为第一种情况对我来说是最好的,因为在我将视图发送给我的用户之前我不必获取任何额外的数据(而且这种方式也不会使用太多的带宽)。

但是我觉得第二种情况让我可以更轻松地按照我喜欢的方式操作数据,并希望它使用更少的代码,因为我可以在发送之前将它渲染到视图上(这种方式我必须使用更多带宽,因为我必须先获取一些数据,从而向我的客户端发送更多数据?)。

【问题讨论】:

  • 如果您不担心将电影 api 暴露给用户,我认为这只是一个偏好问题。
  • 性能方面 - 为您或您的用户?
  • 询问第三方他们希望您的应用程序如何访问他们的 API。他们也有成本。

标签: javascript node.js api fetch fetch-api


【解决方案1】:

正如您已经阐明的那样,每种方法都有利有弊。

通常,如果 API 凭据无法安全公开,或者您将向许多客户端提供相同的内容并希望充当缓存以减少第三方的负载,您将使用服务器端请求 -派对 API。在将数据提供给客户端之前,您也可以对要处理的数据执行此操作,尤其是以专有方式处理,尽管这更明显一些。

相反,当 API 请求会根据用户输入或客户端状态(例如 cookie,例如登录用户对社交媒体 API 的请求)而变化时,在客户端上获取数据更为常见。这样做的缺点是您倾向于向第三方 API 发出更多请求,并且最终可能会耗尽速率受限的 API,从而导致客户端延迟。

【讨论】:

    【解决方案2】:

    各有好处:

    服务器端渲染

    1) 更少的数据必须发送到客户端(过滤)

    2) API 请求可以被缓存,如果存在请求限制或必须进行大量计算时尤其有用

    3) 客户端代码更少

    客户端获取和渲染

    1) 无需重新加载的动态内容(您可以获取更多数据)

    2) 您不需要真正的服务器。像 NGINX 这样的静态文件服务器就足够了,不需要在服务器端编程。

    【讨论】:

    • 我从来没有真正考虑过缓存,这听起来确实是最好的方法。你能指出一些缓存教程的正确方向吗?如果有什么不同,我将 Express 用于我的应用程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 2019-09-23
    • 2013-03-30
    相关资源
    最近更新 更多