【问题标题】:Explanation of how Caching works in ExpressJS解释缓存在 ExpressJS 中的工作原理
【发布时间】:2016-01-27 16:27:52
【问题描述】:

我已经构建了一个 ExpressJS 服务器,它对一组对象执行计算。该数组被放置在请求的主体(POST 请求)中我注意到,当我第一次启动服务器并发送请求时,我从计算中收到了预期的结果。现在,当我向服务器发送完全相同的请求(无需重新启动服务器)时,我会更快地收到响应。我认为是这种情况,因为 ExpressJS 可能正在缓存请求/响应。

我查看了 ExpressJS 文档以详细了解 ExpressJS 中的缓存是如何工作的,但找不到任何内容。有人可以解释当 ExpressJS 服务器接收到请求然后接收到完全相同的请求时缓存是如何工作的吗?有没有办法完全禁用缓存?

【问题讨论】:

  • 我建议您首先查看浏览器的网络选项卡,看看浏览器是否正在缓存响应(因此在浏览器首次获取页面后不再询问您的服务器)。您的服务器可以根据应用于原始响应的标头来控制浏览器缓存设置。例如,服务器可以在任何单个页面上禁用浏览器缓存。
  • 也可能是你的浏览器在做缓存。
  • 我不相信它是浏览器。我一直在服务器上单步执行计算过程,在服务器发送响应之前响应已经不正确。
  • 所以,您是说您的服务器代码有问题,但您没有向我们显示服务器代码。在这里,我们无能为力帮助您。请贴出相关代码。

标签: node.js caching express server


【解决方案1】:

Express.js 默认不执行任何缓存。您看到的效果可能是由于运行 Node.js/Express.js 代码的 Javascript V8 引擎中的 JIT(即时编译器)所致。

启动服务器时,Javascript 代码首先被编译为机器代码。在这一步中,JIT 将对您的代码进行一些“好的”优化,但不会进行“完美”的优化。在运行时(当您的服务器正在运行时),JIT 将使用各种漂亮的技巧进一步优化您的代码。例如,执行更频繁的代码(“热代码”)将比很少执行的代码更优化。

更多信息的参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2015-12-29
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    相关资源
    最近更新 更多