单页应用(SPA)只加载一次 HTML,之后所有跳转由前端路由接管,局部更新 DOM。优点是切换流畅、前后端分离彻底;代价是首屏要下载整个应用的 JS,SEO 天然弱势,离开了框架与构建工具几乎没法维护。
多页应用(MPA)每次跳转都由服务器返回新 HTML,天然 SEO 友好、首屏轻、不依赖 JS 也能跑;但页面间切换有白屏、状态不易保留、交互丰富度受限。现在的常见选型是后台与工具类系统用 SPA,官网、电商、内容站用 SSR/SSG 的 MPA。
// 前端路由的最小实现:SPA 切页不刷新(hash 模式演示) var routes = { '/': function () { return '<h1>首页</h1><a href="#/about">关于</a>'; }, '/about': function () { return '<h1>关于页</h1><a href="#/">回首页</a>'; } }; function render() { var path = location.hash.slice(1) || '/'; var view = routes[path] || routes['/']; document.getElementById('app').innerHTML = view(); } window.addEventListener('hashchange', render); render(); // MPA 对比:传统做法是每个页面一个 .html,跳转由服务器返回整页