You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目中InertiaJS SSR加载应用耗时长是什么原因?

结论先行

本地开发环境下Laravel+Jetstream+InertiaJS SSR的页面加载长等待是开发模式专属的正常现象,生产环境不会复现该问题。


原因说明

  • 本地开发时启动的Inertia SSR服务默认运行在debug模式,Vite、Vue的热更新模块会实时监听所有组件文件变更、生成sourcemap、做增量编译校验,哪怕是空项目,每次请求触发的SSR渲染都会走一遍实时文件检查、热更新上下文刷新逻辑,这部分就是你性能录制里抓到的主要耗时来源。
  • 你手里其他无SSR的Laravel项目加载快,是因为这类项目只需要PHP端解析返回响应,没有Node端SSR服务的实时编译开销,本地开发下本身链路更短。
  • 开发模式的设计优先级是调试便利性而非响应速度,所有热更新、错误定位、实时编译能力本身就会牺牲运行速度,和是否写了业务代码没有关系。

生产环境实际表现

目前大量线上运行的同栈项目实测:

生产环境构建完成后,空项目的SSR首屏响应耗时普遍在20-50ms区间,和原生Blade渲染的Laravel项目响应速度无感知差异,完全不会出现开发环境下的数秒等待问题。

生产环境下SSR服务会直接读取预构建好的压缩后静态资源,没有实时编译、文件监听的额外开销,渲染效率非常高。


本地验证生产速度的方法

你可以在本地直接模拟生产环境配置验证效果,执行以下命令即可:

# 1. 先把.env里的环境配置切到生产模式
APP_ENV=production
APP_DEBUG=false

# 2. 构建压缩后的前端生产资源
npm run build

# 3. 启动无debug模式的SSR服务
php artisan inertia:start-ssr

配置完成后再刷新页面,就能得到和线上一致的加载速度,不会再有长等待。验证完记得把环境配置切回开发模式,否则会丢失热更新、详细错误提示等开发调试能力。


生产部署注意点

  • 部署时不要用开发模式启动SSR服务,必须先执行npm run build完成前端资源构建
  • SSR进程建议用Supervisor做进程守护,避免进程意外退出导致服务不可用
  • 开启PHP OPcache、合理配置SSR渲染缓存后,响应速度还能进一步提升

内容的提问来源于stack exchange,提问作者Mostafa Said

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:51:17