【问题标题】:SSR does not work when javascript is disabled禁用 javascript 时 SSR 不起作用
【发布时间】:2019-06-16 05:00:59
【问题描述】:

在此处参考这张票:https://github.com/zeit/next.js/issues/4210 我目前想知道为什么当您禁用 javascript 时,大多数使用现代中继和 NextJS 的内容都不起作用。

我最初的猜测是,由于 NextJS 是一个用于服务器端渲染的 React 库,如果 JavaScript 在 chrome 中被禁用,那么显然 React 不起作用。但是,NextJS 是服务器端渲染,因此在客户端禁用 javascript 应该不是问题吗?那么,为什么还会出现这个问题呢?

【问题讨论】:

    标签: javascript reactjs next.js serverside-javascript server-side-rendering


    【解决方案1】:

    在现代 SSR 场景中,如在 isomorphic application 中,只有第一次渲染由服务器完成,它返回纯 html 内容以及将用于后续渲染的 js

    如果浏览器禁用了 javascript,您应该只会看到第一个呈现为静态页面,因为解释器所做的是显示纯 html 内容,但是您不应该能够与页面交互(即需要启用js)

    【讨论】:

    • 即使 JS 被禁用,第一次渲染后是否仍然与页面交互?
    • 如果禁用 JS 页面是静态 html 所以基本上没有,在这种情况下没有办法与页面交互
    【解决方案2】:

    虽然@Karim 的回答是正确的,但值得指出的是,从技术上讲,如果您使用“渐进式增强”,用户可以与页面进行部分交互。在这种情况下,您使用原生 HTML 功能来执行诸如导航到其他页面、表单提交等操作。这些不需要启用 JS 即可正常工作。根据您的目标受众,这可能比它的价值更痛苦。

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2022-08-12
      • 2017-06-12
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      相关资源
      最近更新 更多