PACE - 为你的网站添加页面加载进度条

简介: pace-js 是一个为网站添加页面加载进度条的库,可以为任意网站自动添加上页面加载进度条,提供了多种主题样式。

网络异常,图片无法展示
|

pace-js 是一个为网站添加页面加载进度条的库,可以为任意网站自动添加上页面加载进度条,提供了多种主题样式,先看下效果:

使用

使用该库只需要将该库的脚本和选择的主题添加到页面 head 中即可:

<head>
    <script src="https://cdn.jsdelivr.net/npm/pace-js@latest/pace.min.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/pace-js@latest/pace-theme-default.min.css" />
</head>
复制代码

该库会自动监听页面中的加载状态,包括 document 的状态、ajax 请求、事件滞后,并且在单页应用切换时也可监听。另外还支持检测特定元素的出现来判定等。如果只是普通使用场景,直接添加脚本后选择喜欢的主题即可。

主题

可在官网中选择喜爱的主题:pace

以下是官方提供的主题的截图:

网络异常,图片无法展示
|

直接下载喜欢的主题样式即可,也可对主题做二次开发,或直接参考官方主题开发自己的主题。

自定义

如果使用 script 标签加载脚本,可使用 data-pace-options 来定义配置:

<script data-pace-options='{ "ajax": false }' src="pace.min.js"></script>
复制代码

如果使用模块化导入,可手动调用 pace.start(options) 来启动:

pace.start({
    document: false
});
复制代码

监听的配置项包括:

  • ajax
  • document
  • eventLag
  • elements

ajax

ajax 配置默认为

{
    "trackMethods": ["GET"],
    "trackWebSockets": true,
    "ignoreURLs": []
}
复制代码

表示默认会监听 GET 请求和 WebSocket 连接,通过 ignoreURLs 可以忽略特定的 ajax 请求。

document

默认会监听 document 的加载,如需关闭可设置为 false

eventLag

eventLag 为监听脚本执行的延迟,可设置为 false 关闭(文档描述不是太清楚)

elements

通过 elements 可以监听特定元素的出现并隐藏加载,适用于如单页应用中指定渲染了 content 则视为加载完成的这种场景。

paceOptions = {
    elements: {
        selectors: ['.timeline,.timeline-error', '.user-profile,.profile-error']
    }
};
复制代码

除了文档中这几个 options,其实还有很多可设置选项,后面写一篇源码分析再列一下。

API

pace 暴露了几个方法:

  • pace.start:显示加载进度条,在直接使用 script 加载时会自动启动
  • pace.restart:重新显示加载进度条
  • pace.stop:主动停止 pace 进度条和监听
  • pace.track:主动监听请求
  • pace.ignore:主动忽略监听请求

restart 会在如触发 ajax 时、单页切换时(pushStatereplaceState)自动调用

事件

pace 存在五类事件:

  • startpace 初始化开始时或重启时
  • stoppace 主动调用 stop 时,或重启时
  • restartpace 重启时
  • donepace 完成时
  • hidepace 隐藏时

可通过 pace.onpace.offpace.once 来控制事件监听。

总结

pace 作为一个全局加载进度条,使用方便,有较为丰富的自定义选项用于定制,如果有类似的需求,不妨尝试一下。当然如果是自己的小玩具里,可以肆无忌惮的随意使用。

相关文章
|
小程序 UED
微信小程序轮播图image控件图片mode属性自适应及解决图片加载闪烁bug
微信小程序轮播图image控件图片mode属性自适应及解决图片加载闪烁bug
399 0
|
Web App开发 移动开发 前端开发
多种方法实现Loading(加载)动画效果
当我们ajax提交一个按钮的时候,给那个按钮来个Loading效果会高端很多,体验也会上升个层次。 既能让用户知道正在提交中,也能防止二次提交,好处多多呢。
多种方法实现Loading(加载)动画效果
|
移动开发 前端开发 JavaScript
网页|利用progress实现进度条效果
网页|利用progress实现进度条效果
511 0
|
JavaScript
js:监听页面滚动scroll,实现阅读进度条
js:监听页面滚动scroll,实现阅读进度条
364 0
|
Web App开发 JavaScript 前端开发
加载Flash、禁用JS脚本、滚动页面至元素、缩放页面
Selenium很多难解决的问题,我们要首先想到从JS脚本出发,毕竟Selenium还是支持驱动浏览器运行JS脚本的。 这篇文章的内容主要是Selenium日常开发中会遇到的坑,以Java代码为主,当然Python的小伙伴不用担心,这里所有的解决方案都是可以在Python中通用的。
277 0
|
JavaScript 前端开发
js实现页面滑动到最底部触发内容加载
js实现页面滑动到最底部触发内容加载
434 0
|
C#
C# PDF Page操作——设置页面切换按钮
概述 在以下示例中,将介绍在PDF文档页面设置页面切换按钮的方法。示例中将页面切换按钮的添加分为了两种情况,一种是设置按钮跳转到首页、下页、上页或者最后一页,另一种是设置按钮跳转到指定页面。两种方法适应不同的程序设计需要,可自行选择合适的添加方法。
1483 0