在页面之间导航时显示加载程序 - PWA

2024-02-01

我有一个基于 PHP 的网站。

我用过service-workers and manifest.json将网站转换为PWA.

现在,当我从主屏幕启动 PWA 时,它可以像应用程序一样正常工作。但是,问题在于,由于 PWA 不显示浏览器地址栏,用户无法知道页面正在重新加载或下一页正在加载。当他们单击某些内容时,下一页会被加载,但不会显示加载指示器.

所以,现在我需要在页面之间导航时添加加载动画。由于所有页面都位于不同的 URL,并且它们没有主框架。

我无法找出解决方案。


Theory

您需要做的是在页面生命周期中两次显示加载动画:启动时 and 关闭前。如果您这样做,第一页的关闭动画将把用户带到第二页的开始动画,并且用户将收到应用程序的状态通知。

Practice

1)开始动画

I think document.ready https://api.jquery.com/ready/jQuery 的事件是让用户与页面交互的好时机。因此,加载动画将在页面加载时激活/显示。一旦页面加载并准备好进行用户交互,您将结束动画。

.ready() 方法提供了一种在以下情况下立即运行 JavaScript 代码的方法: 页面的文档对象模型 (DOM) 变得可以安全操作。这 通常是执行之前所需任务的好时机 用户查看页面或与页面交互,例如添加事件 处理程序并初始化插件。

2)结束动画

为此,我使用onbeforeunload https://developer.mozilla.org/en/docs/Web/Events/beforeunload浏览器的事件。

当窗口、文档及其对象时,会触发 beforeunload 事件 资源即将被卸载。

onbeforeunload当用户单击链接或以其他方式触发导航过程时自动触发。因此,只需听一下,您就可以开始结束动画。

然后结束动画将在用户触发导航时开始,并受到下一页的开始动画的欢迎。因此,将会出现从用户单击开始到下一页加载结束的转换。就像应用程序一样。

The code

这是我通常使用的代码片段;

$(function () {
    // page is loaded, it is safe to hide loading animation
    $('#loading-bg').hide();
    $('#loading-image').hide();

    $(window).on('beforeunload', function () {
        // user has triggered a navigation, show the loading animation
        $('#loading-bg').show();
        $('#loading-image').show();
    });
});

这是一个带有完整样式和 HTML 的小提琴 https://jsfiddle.net/umurkaragoz/dhhzs7ry/23/

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在页面之间导航时显示加载程序 - PWA 的相关文章

随机推荐

  • 使用 Moq 模拟数据集

    我正在尝试开始使用起订量 但无法找到任何好的资源来完成我需要的事情 我有一个数据接口类 它有一个 Get 方法 该方法通过存储过程返回数据集 这就是代码的编写方式 我目前无法更改它 因此必须以这种方式完成 我想通过模拟数据集并返回数据来测试
  • iOS 13 中使用 Quickblox 和 CallKit 的传入视频通话问题

    功能 我在应用程序中实现了 QuickBlox 视频通话 问题 如果应用程序处于后台 收件人不会收到来电通知 结果 视频通话在 iOS 12 上运行良好 但在 iOS 13 上仅出现问题 我查了很多链接来解决这个问题 https docs
  • Xcode 9 中 UINavigationController 方法 setToolbarHidden bug:无限计算自动布局约束导致 OOM

    我有一个实例UINavigationController嵌套在UITabBarController 我使用导航控制器到达某个视图控制器 选项卡栏仍然可见 然后从该控制器转到第二个视图控制器 选项卡栏不再可见 在第二个视图控制器中 一旦我调用
  • android 在发布版本中添加 DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    使用 api 级别 33 构建我的应用程序后 android 正在合并清单中添加新权限
  • 更改 statelistdrawable 文本颜色 android 按钮

    我正在开发 Android 应用程序 我对按钮的每个状态 按下 正常 有不同的背景可绘制和文本颜色 我创建了 statelistdrawable 对象以便能够添加背景可绘制对象 但我现在的问题是如何设置文本颜色 有人可以帮忙吗 Button
  • 单击提交按钮的值

    这应该是非常简单的 我正在检查是否使用 jquery 提交表单 该表单有多个具有不同值的提交按钮
  • 如何捕获 Mule foreach 作用域中的异常但保持进程继续进行?

    我是 Mule ESB 的新手 我创建了一个简单的流程 循环遍历订单列表并调用 Magento API 来逐一更新订单状态 我的问题是 如果 foreach 范围内发生任何异常 整个过程就会结束 我尝试使用异常策略来捕获异常 它确实捕获了异
  • ng-repeat 不适用于表 但适用于列表
  • 我有以下代码 Plnkr 上的代码 http plnkr co edit ULoa3SxPAFIPdHTvbguF p preview 我正在尝试使用ng repeat在一个表内 但这是行不通的 而相同的代码适用于列表 li 这是相同的片段
  • 为 NSTableView 单元格绘制带有边框和背景的文本

    我有一个基于单元格的表格视图 我想在该表格视图中显示某种标签 最好不必使用基于视图的表格视图 是否有一种优雅的方式来实现类似此处示例 HTML 的效果 最好还具有背景颜色 如果您想坚持使用基于单元格的表格视图 您可以子类化NSCell并覆盖
  • 如何使用Google脚本中的URL参数过滤Google表格列中的数据?

    我正在尝试 Google 脚本 我想根据关键字参数显示数据 稍后将 C 列称为数据过滤器 它将根据参数关键字中搜索的内容进行显示 例如 在我之前的项目中 我有一个参数作为分页 page 1 limit 10 现在我有一个新问题要解决 即搜索
  • 当用户关闭基于 django2.0 的网站上的选项卡或浏览器时,如何强制注销用户

    我使用 Django 的内置登录注销功能 使用 Django 身份验证 这是用于登录的以下 url 模式 网址 py from django contrib import admin from django urls import path
  • 当存在不匹配记录时连接两个表

    我正在尝试使用 1 个 sql 语句来生成我想要的结果 我有 2 个名为 order 和customers 的表 并尝试使用这样的查询 select a b customers name from order a customers b w
  • css :hover 伪类不起作用

    我有一个CSS hover不产生任何结果的伪类 我正在摆弄一些图像库代码 但我设法得到了这个不起作用的代码片段 我不明白为什么 这里关于大小的一些更奇怪的 CSS 规则是因为这些 div 通常包含图像 为了简单起见 我删除了图像 但保留了规
  • 自制方法装饰器删除所有元数据,我该如何解决它?

    我使用 NestJS 和 Nestjs swagger 模块来获取简单的 api 文档 但我遇到了麻烦 因为我需要验证服务的响应 这就是我创建自制方法装饰器的原因 但是当我使用它时 我遇到了很大的麻烦 来自另一个装饰器的所有元数据都丢失了
  • 如何用htaccess重写url?

    我必须建立一个银行搜索网站 我想像下面的链接一样重写网址 bank https bankifsccode com 请参阅上面的链接 在此 当您选择银行和所有详细信息时 网址也会发生变化 我想在 codeigniter 网站中使用相同的 ur
  • $_GET、$_POST 和 $_REQUEST 未填充

    我继承了一台运行着xitami pro服务器的XP机器并安装了PHP 5 2 17 因为我认为我可能需要VC6版本 PHP 的工作方式和phpinfo显示应有的样子 当我做www domain com test php x y z test
  • Keras 在调用 train_on_batch、fit 等时使用过多的 GPU 内存

    我一直在搞乱 Keras 到目前为止我很喜欢它 在使用相当深的网络时 我一直遇到一个大问题 当调用 model train on batch 或 model fit 等时 Keras 分配的 GPU 内存明显多于模型本身所需的内存 这并不是
  • Android RecyclerView:将布局文件 LIST 更改为 GRID onOptionItemSelected

    我正在开发一个用于在线购物的 Android 应用程序 我使用以下命令创建了产品列表视图RecyclerView 因为我想改变观点选择选项菜单项时 我创建了以下adapter named ProductAdapter 因为我已经实现了用于更
  • 我可以使用 Access VBA 来确定表是否具有数据宏吗?

    有没有办法通过 VBA 确定 Access 表是否包含数据宏 我有数据宏most我的表 但是如果我的代码遇到没有它的表 则会失败 我没有收到错误消息 相反 代码会继续运行 就像处于无限循环中一样 但我必须强制 Access 退出才能逃脱 具
  • 在页面之间导航时显示加载程序 - PWA

    我有一个基于 PHP 的网站 我用过service workers and manifest json将网站转换为PWA 现在 当我从主屏幕启动 PWA 时 它可以像应用程序一样正常工作 但是 问题在于 由于 PWA 不显示浏览器地址栏 用