page-lifecycle - PageLifecycle.js是一个很小的JavaScript库,允许开发人员在浏览器中轻松观察Page Lifecycle API状态变化

Created at: 2018-06-20 03:54:49
Language: JavaScript
License: Apache-2.0

PageLifecycle.js

总览

PageLifecycle.js是一个很小的JavaScript库(压缩了<1K),使开发人员可以轻松地观察Page Lifecycle API状态更改,并在所有浏览器中一致地实现Page Lifecycle最佳实践

▶️查看演示:page-lifecycle.glitch.me 👀

安装

您可以通过运行以下命令从npm安装此库:

npm install --save-dev page-lifecycle

用法

该库的发行版包括三个精简的,可立即投入生产的版本:

1. ES5:

dist/lifecycle.es5.js
(UMD)

使用此版本可最大程度地与旧版浏览器(不能运行ES2015 +代码)兼容。

作为UMD捆绑包,在CommonJS或AMD环境中可能需要它,或者可以将其作为脚本标签加载为浏览器的global

lifecycle

<script defer src="/path/to/lifecycle.es5.js"></script>
<script defer>
lifecycle.addEventListener('statechange', function(event) {
  console.log(event.oldState, event.newState);
});
</script>

2. ES2015:

dist/lifecycle.mjs
(ESM)🔥

如果您仅支持支持ES模块的浏览器,或者您使用的

<script type="module">
nomodule
后备有条件地针对现代浏览器,请使用此版本。

<script type="module">
import lifecycle from '/path/to/page-lifecycle.mjs';

lifecycle.addEventListener('statechange', function(event) {
  console.log(event.oldState, event.newState);
});
</script>

3. ES2015(天然):

dist/lifecycle.native.mjs
(ESM W / O
EventTarget
Event
垫片)⚠️

如果您只针对支持扩展

EventTarget
Event
构造函数的
浏览器,请使用此版本。

注意:此版本是最小版本,但仅在某些浏览器中可用。实施说明与上述ES2015版本相同。

API

PageLifecycle.js库导出一个

lifecycle
对象,该对象是
Lifecycle
该类的单例实例。本
Lifecycle
类具有以下属性,方法和事件:

物产

名称 类型 描述
state
string
返回当前页面生命周期状态。
pageWasDiscarded
boolean
返回
document.wasDiscarded
(或
false
如果不存在)的值。

方法

名称 描述
addEventListener

参数:

  • 类型
    string
  • 听众
    function(Event)

添加检测到传递的事件类型时要调用的回调函数。(注意:目前仅支持“ statechange”事件类型。)

removeEventListener

参数:

  • 类型
    string
  • 听众
    function(Event)

从当前的侦听器列表中删除传递的事件类型的函数。(注意:目前仅支持“ statechange”事件类型。)

addUnsavedChanges

参数:

  • 编号
    Object|Symbol

将项目添加到内部挂起的更改堆栈。调用此方法

beforeunload
将向窗口添加一个通用侦听器(如果尚未添加)。

传递的参数对此状态应该是唯一的,因为只能通过将相同的参数传递给来将其删除

removeUnsavedChanges()

removeUnsavedChanges

参数:

  • 编号
    Object|Symbol

从内部挂起的更改堆栈中删除与传递的参数匹配的项目。如果堆栈为空,则将通用

beforeunload
侦听器从窗口中删除。

大事记

名称 描述
statechange

特性:

  • newState
    string
    页面刚刚过渡到的当前生命周期状态。
  • oldState
    string
    页面刚刚从其过渡之前的生命周期状态。
  • originalEvent
    Event
    触发状态更改的DOM事件。

statechange
只要页面的生命周期状态发生更改,就会触发该事件。

浏览器支持

铬
火狐浏览器
苹果浏览器
边缘
IE浏览器
9+
歌剧

PageLifecycle.js已经过测试,可以在上述浏览器中运行。