万能的 v 友啊,求一个不同语言开发的 web 混合渲染方案(首屏渲染用的不是基于 node 的服务端渲染,但是增量渲染使用 spa)要怎么做。

52 天前
 PungentSauce

就比如 flarum ,这个 laravel(php) 的开发的论坛,我发现他的首屏是有一些 html 标签的,但是增量渲染全是靠接口和 js ,这个项目运行的时候也没有启动 node 。是如何做到的。问了下 ai 基本都是说用了一个类似 vue 的库,但是页面属性绑定,页面切换应该没这么简单就处理好吧。有做过不同语言混合渲染的同学可以分享一下吗。 在不引入 node 做 ssr 的情况下。

2839 次点击
所在节点    程序员
69 条回复
horizon
52 天前
啊,模版引擎听说过没
PungentSauce
52 天前
@horizon 模板引擎只能单屏幕,比如 我渲染完了列表页,我再跳转详情页,整个页面绑定要怎么操作。或者说 我用其他语言的模板引擎可以分别渲染 列表和详情页了,但是 渲染完毕后的跳转 要使用增量渲染的时候需要怎么做。 要的其他语言渲染单屏幕后,再用户没有刷新的情况下的站内跳转做到, 类似 vue router 渲染 view 的效果。
pannanxu
52 天前
next.js
spritecn
52 天前
AJAX 这个词好像有点过时..
PungentSauce
52 天前
@pannanxu 生产环境不引入 noscript
PungentSauce
52 天前
@pannanxu 发错了,生产环境不引入 node ,刚才看 了 flarum 的站点,好像使用的是 noscript
momocraft
52 天前
具体点,“什么的” 方案,比如对“混合渲染” 的定义和期待是什么
fulvaz
52 天前
看了半天, 原来你需要的只是:

https://www.google.com.hk/search?q=前端入门
samnya
52 天前
啊,这就是很基础的 ajax 做法啊。
已知所有的语言都可以实现字符串拼接,那么在任何语言的服务端都可以做一个"<div>"+任意内容+"</div>"的 api ,返回 html 字符串。
前端在获取这个字符串之后,直接对某个节点做 .innerHTML=你的 html 字符串
不就是你说的增量渲染吗

至于你说的页面属性绑定、页面切换怎么处理好,以前生成 html 这个活就是后端干的,全部逻辑都是后端管理好的。spa 这种东西出来之后才是前端管理状态
xiaomushen
52 天前
@fulvaz 哈哈哈哈
PungentSauce
52 天前
@momocraft 我用 golang 或者 php 或者 java 的模板引擎渲染出首屏,渲染完毕后的所有交互都交给 js ,包括页面切换,不用整个页面刷新。 可以用 node 进行打包,但是生产环境无 node 运行时。 就拿 php 说吧,php 老的不都是 mvc 么 ,mvc 渲染首屏没问题。但是就无法使用 vue router 之类的东西。并且 a 链接跳转就会刷新整个页面。

简单点说,就是我要用其他语言的模版引擎进行首屏的渲染,渲染后就变成 spa 。

我这里说的首屏渲染是 [php/java/golang] 渲染的 , [不是 node] [不是 node] [不是 node] [不是 node] ,如果是 node 的话直接用 next /nuxt 这个我是知道的。 我现在首屏都是 golang 渲染的,所有的跳转都是 a 链接 ,但是我看 flarum 返回的首屏也有内容,但是渲染后就变成 spa 了。 不过看着是用的 noscript 。

主要是非 node 的 web 渲染,seo 首屏渲染和 spa 的交互方式都要。 这样的混合渲染
PungentSauce
52 天前
@samnya 我说的这个增量渲染包含页面的跳转,比如 列表跳转详情,详情跳转回列表,以及用户页。不是仅仅单页面的元素变化。可能是 非 nav 以外的内容的整体变化。
PungentSauce
52 天前
@samnya 我希望的是跨语言 ssr ,也不知道这么说对不对,就是一个 vue/react 项目,首屏的渲染不通过 nest/nuxt 而是 golang 。 当然别的前端框架或者方案也行。 这里的增量指的整个页面,不是局部模块
shakaraka
52 天前
@PungentSauce #11

没见过这种,如果有人知道的话我也想开开眼。一般都是用 nuxt 、next 、analog
shakaraka
52 天前
我感觉你这个是个 XY 问题,你到底是想实现啥
gkinxin
52 天前
parad
52 天前
JavasScript + Ajax + DOM API + 跳转拦截
十年前的网站都是这么写的
其实就是自己实现一个 React / Vue
gkinxin
52 天前
@PungentSauce noscript 是指浏览器不支持 js 时使用的 html 标签,跟你说的功能无关。
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Elements/noscript
shakaraka
52 天前
@gkinxin #16 我知道传统的 mvc 架构的 php 、jsp 这些。不过对于 spa 来说的话,开发起来很难受吗,梦回 10 年前。所以才出现了现代与 js 同生态的 ssr 框架
shakaraka
52 天前
不过我还知道有个 c#的。满足 op

https://github.com/ant-design-blazor/ant-design-blazor

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1150266

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX