javascript 禁用时 SSR 不工作
SSR does not work when javascript is disabled
这里指的是这张票:https://github.com/zeit/next.js/issues/4210
我目前想知道为什么当您禁用 javascript 时,大多数使用 relay modern 和 NextJS 的内容都不起作用。
我的初步猜测是,由于NextJS是一个用于服务端渲染的React库,如果JavaScript在chrome中被禁用,那么显然React是行不通的。但是,NextJS 是服务器端渲染,因此在客户端禁用 javascript 应该不是问题吧?那么,为什么还会出现这个问题呢?
在现代 SSR 场景中,如在 isomorphic application 中,只有第一次渲染由服务器完成,returns 纯 html
内容与 js
将用于后续渲染。
如果浏览器已禁用 javascript,您应该只会看到第一个呈现为静态页面,因为解释器所做的是显示纯 html 内容,但您应该'无法与页面交互(这需要启用 js)
虽然@Karim 的回答是正确的,但值得指出的是,从技术上讲,如果您使用“渐进增强”,用户可以与页面进行部分交互。在这种情况下,您使用本机 HTML 功能来执行诸如导航到其他页面、表单提交等操作。这些不需要启用 JS 即可正常工作。根据您的目标受众,这可能比其价值更痛苦。
这里指的是这张票:https://github.com/zeit/next.js/issues/4210 我目前想知道为什么当您禁用 javascript 时,大多数使用 relay modern 和 NextJS 的内容都不起作用。
我的初步猜测是,由于NextJS是一个用于服务端渲染的React库,如果JavaScript在chrome中被禁用,那么显然React是行不通的。但是,NextJS 是服务器端渲染,因此在客户端禁用 javascript 应该不是问题吧?那么,为什么还会出现这个问题呢?
在现代 SSR 场景中,如在 isomorphic application 中,只有第一次渲染由服务器完成,returns 纯 html
内容与 js
将用于后续渲染。
如果浏览器已禁用 javascript,您应该只会看到第一个呈现为静态页面,因为解释器所做的是显示纯 html 内容,但您应该'无法与页面交互(这需要启用 js)
虽然@Karim 的回答是正确的,但值得指出的是,从技术上讲,如果您使用“渐进增强”,用户可以与页面进行部分交互。在这种情况下,您使用本机 HTML 功能来执行诸如导航到其他页面、表单提交等操作。这些不需要启用 JS 即可正常工作。根据您的目标受众,这可能比其价值更痛苦。