PWA和SSG的区别及使用

PWA(Progressive Web App)和 SSG(Static Site Generator)都属于现代 Web 开发技术,但两者有着不同的应用场景和解决方案。

PWA

PWA 是一种渐进式 Web 应用程序,它借助 service workers 技术实现应用离线访问、推送通知等特性,同时能够具备类似原生应用的用户体验。PWA 可以在安装后离线使用,确保加载速度更快且用户交互更加顺畅。PWA 因为其能够缓存一些静态文件及所需数据在本地,实现了无网络时仍可访问网页的功能。

SSG

而 SSG 则是一种通过事先在构建过程中生成 HTML、CSS、JS 等静态文件,并在服务器上进行分发,使得 Web 页面呈现更快、更易于缓存等优点。SSG 最常见的应用场景是构建博客、文档站点、电子商务或展示型网站等不需要频繁更新的站点。这种技术可以在网站发布前,预先将所有所需内容处理完成并打包,通过服务端进行部署。

总结

简单来说:

PWA 适合需要动态数据的应用。PWA 实现了浏览器本地缓存,即使没有网络也可以看到最近一次的页面信息。因此对于需要频繁请求的数据可以减少网络请求量,同时也实现了离线访问应用。

SSG 适合内容不经常变化,但流量和SEO排名又非常重要的网站。因为多数情况下,SSG 不必考虑频繁更新内容而面临的使用负担。由于它会生成静态文件,所以对于相似的请求能够快速响应,因此可以显著提高页面性能及服务的质量,同时也带来更好的 SEO 效果。

当然在实际开发中,PWA 和 SSG 可以结合使用,使得 Web 应用既具备离线访问功能,又能够实现爬虫抓取和搜索引擎优化等目标。

PWA的使用

基于 Vue 的 PWA 解决方案主要使用 service worker 技术实现离线缓存和应用程序更新等功能,提供了一种更高效、更优雅的网络应用体验。以下是基于 Vue 的 PWA 解决方案使用的流程:

1. 安装 pwa 插件

通过 npm 安装 @vue/cli-plugin-pwa 插件,该插件提供了可用于构建 PWA 的配置和生成适合生产环境部署的应用代码。

npm install -D @vue/cli-plugin-pwa

2.创建 PWA 项目

使用 Vue CLI 工具创建持久化 Web 应用程序(PWA)应用程序模板。

vue create my-pwa-app

在交互式命令行中选择默认选项或自己需要的特性进行配置即可。

3.配置 pwa 插件

进入项目的根目录并打开 vue.config.js 文件,在配置对象中添加 pwa 相关配置。

module.exports = {
  pwa: {
    name: 'my-pwa-app',
    themeColor: '#4DBA87',
    msTileColor: '#000000',
    appleMobileWebAppCapable: 'yes',
    appleMobileWebAppStatusBarStyle: 'black',
    workboxPluginMode: 'InjectManifest',
    workboxOptions: {
        swSrc: 'src/sw.js'
    }
  }
};

name:指定应用名称。

themeColor:指定应用主题色。

msTileColor:指定平铺磁贴的颜色。

appleMobileWebAppCapable:指定 Safari 是否应该在启动时使用完整的屏幕。

appleMobileWebAppStatusBarStyle:指定状态栏的样式。

workboxPluginMode:指定 Workbox 插入服务工作者代码的模式。

workboxOptions:Workbox 选项对象,其中包含 swSrc 属性,指定服务工作者代码位置。

4.注册 service worker

创建一个新的 sw.js 文件,并在 main.js 文件中注册您的服务工作者。

javascript
if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/sw.js').then(function(registration) {
      console.log('Service worker registered with scope: ', registration.scope);
    }, function(err) {
      console.log('ServiceWorker registration failed: ', err);
    });
  });
}

5.离线缓存

将需要离线缓存的文件和页面添加到 缓存选项 列表中,以便在应用程序首次安装或用户清除浏览器缓存时优先缓存这些文件。

6.应用程序更新

在服务工作者脚本中添加版本控制信息并监听 install 和 activate 事件,以确保用户始终接收到最新版本的应用程序。

以上是基于 Vue 的 PWA 解决方案的使用流程,适当的 PWA 开发可提高 App 的性能及体验。需要注意的是,在实际使用中需合理配置和管理缓存,以免出现缓存混淆等问题。

SSG使用

SSG(Static Site Generator)是一种将预先准备好的模板和数据,在构建时编译为静态 HTML 页面、CSS 和 JavaScript 的工具。通过整个站点被提前生成而不是在运行时动态生成来加速页面加载速度,让用户能够更快地浏览网站。

以下是 SSG 常见的使用流程:

1.选择 SSG 工具

选择一个适合自己项目的 SSG 工具,并根据官方文档安装及配置环境。

目前常见的 SSG 工具包括但不限于:

Hugo:Go 语言编写的快速静态站点生成器。
Jekyll:如 GitHub Pages 所使用的 Ruby 静态站点生成器。
Gatsby:基于 React 的静态站点生成器,可以采用组件化开发。

2.创建项目

使用 SSG 工具创建一个新项目,或者按照该工具的规范重新组织现有项目文件和目录。在项目中选择使用哪些 Markdown 解析器、模板引擎等相关工具。

3.编写页面

使用 Markdown 或其他爱好的标记语言编写页面内容,并通过模板引擎将其转换成站点页面 HTML 文件。

4.构建项目

使用命令行工具,调用 SSG 工具进行项目构建。这通常包括将页面内容与特定模板中的 HTML 模板进行组合,生成最终站点页面。

5.部署项目

通过 FTP、服务器、GitHub Pages 等方式将构建好的 HTML 页面和资源上传到 Web 服务器或静态文件主机,使访问者可以不依赖于数据库等底层技术快速体验网站。

这些步骤是典型的 SSG 使用流程,在实际应用中会因工具而异,但一般都使用类似的思路。同时也应该注意,一些 SSG 工具可以通过很多插件来扩展其功能,例如 Gatsby 可以利用 GraphQL 来处理更多动态数据。

总体来说,SSG 搭建时可以帮助用户高效地搭建静态网站,并且适合于内容更新频率相对较低,且无需动态交互和复杂后台逻辑的场景,如博客、电子书、文档和个人网站等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值