帖子

IP 属地未知

【常见问题】为什么访问感觉慢

一级精华
Fresns 是一款前后端分离的程序,网站端和 #App# 一样,都是#客户端#,通过 #API# 与主程序通讯交互,所以网站端实际上是一个插件(引擎插件),只不过安装在了主程序中运行,也可以更换。
https://market.fresns.cn/open-source/engines

Fresns 的 API 不慢,现在感觉的慢,不是 API 问题,与主程序无关,那是因为引擎插件的技术方案和#服务器性能#的问题。

官方的引擎插件是从运营和技术的角度上选择了一个折中方案,为了呈现更好的 #SEO# 效果,官方引擎插件采用的是#模板引擎#技术。

模板引擎先是全部接口在服务端处理和完成请求,等拿到数据后组装给模板引擎再渲染页面,所以看到页面时就是所有的接口和数据都完成了。处理完了全部工作之后,才显示页面,所以感觉上慢。

如果是编译引擎,编译是页面和数据分开的,打开的任何页面都是立马呈现,然后会有一个加载状态,它再请求数据展示进来。比如页面打开后,显示一个转圈的加载状态。所以编译引擎的缺点就是搜索引擎看到的页面是空数据,SEO 很不好。

但是,#Fresns# 很灵活,使用者可以自行选装不同的引擎,总是一个方案适配你,所以慢不是 Fresns 程序的问题,是一个综合因素。

另外,实际上,官方选择的技术方案,也不慢的(我看到好几个别人的站点,配置很低,但是速度秒开)。绝大多数的原因是#服务器性能#导致的,包括官方社区也是一样,因为购买的是打折机器,看着配置高,但是性能不行,会降低程序的处理速度。
https://discuss.fresns.cn/post/TFshHvWI

未登录无法操作

登录 注册

评论 6

IP 属地未知
拜读了一下关于 #模板引擎# 的相关代码。发现这方面代码是由PHP实现的。通过 GuzzleHttp 获取 API 数据,然后用模板引擎(controller)处理数据,并交由模板(blade)进行渲染。

这里有个最大的弊端:和 js 不一样,受限于单线程的php-fpm,GuzzleHttp 的 async 请求仅仅是将请求操作后置,直到遇到...

全文

https://discuss.fresns.cn/comment/ozvgBCMq
唐杰 作者 : 未来会开发 SSR 框架的编译引擎,或者开发者开发出编译引擎替换官方的引擎。 现在提交是表单模式,精力有限,还没办法在这种细节上优化。
共 1 条回复
上滑加载更多