获取当前页面停留时间


let startTime: number | null = null;
let visibilityHandler: (() => void) | null = null;
function startCalTime() {
  startTime = Date.now();

  if (visibilityHandler) {
    document.removeEventListener("visibilitychange", visibilityHandler);
  }

  visibilityHandler = () => {
    if (document.visibilityState === "hidden") {
      stopCalTime();
    } else if (document.visibilityState === "visible") {
      startTime = Date.now();
    }
  };

  document.addEventListener("visibilitychange", visibilityHandler);
}

async function stopCalTime() {
  if (startTime == null) return;

  const endTime = Date.now();
  const durationSeconds = Math.round((endTime - startTime) / 1000);
  startTime = null; // 重置状态
  return durationSeconds
}

export default {
  startCalTime,
  stopCalTime,
};

获取当前页面停留时间
https://blog.fullsize.cn/2025/06/25/notion/huo-qu-dang-qian-ye-mian-ting-liu-shi-jian/
作者
fullsize
发布于
2025年6月25日
许可协议