收藏
回答

怎么获取小程序页面加载时长?,并在加载完成后触发函数,求解

需求:页面加载成功时触发,计算加载时间,触发函数

回答关注问题邀请回答
收藏

4 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-05-25

    重写Page, 一次重写,一次载入,终生(整个小程序)受用

    // utils/page.js
    const myPage = Page
    Page = function (e{
      let {
        onLoad,
        onReady
      } = e
      e.onLoad = (() => {
        return function (res) {
          // 收集页面信息
          this.runTimeInfo = {
                  path: this.route,
                  starTime: new Date().valueOf(),
                    //...其他信息
                }
                onLoad && onLoad.call(this, res)
        }
      })()
      e.onReady = (() => {
        return function (res) {
          // 继续收集页面信息
          this.runTimeInfo.readyTime = new Date().valueOf()
          this.runTimeInfo.runTime = this.runTimeInfo.readyTime - this.runTimeInfo.starTime
          // 在此处上报收集的页面信息this.runTimeInfo即可
          // your code here
    
          onReady && onReady.call(this, res)
        }
      })()
      return myPage.call(this, e)
    }
    

    

    // app.js
    //在app.js中引入重写后的Page,每个加载时会自动上报页面收集的信息
    require('./utils/page.js')
    
    App({...})
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-05-25
    有用 4
    回复 2
    • 小调
      小调
      2020-05-25
      这个可以,谢谢
      2020-05-25
      回复
    • L.
      L.
      2022-12-19
      你好,请问我从A页面跳转到B页面的时候触发了这些事件,但是返回的时候无法触发onshow是为什么?
      2022-12-19
      回复
  • 鹏宇zero
    鹏宇zero
    2020-05-25

    写共有Utils方法,在Page的onLoad开始 onReady中调用结束。

    也可以写个page脚本,在每个Page的 onLoad 和 onReady中插入统计代码。

    上传之前执行一次脚本。


    统计信息:pageName,loadingTime,userInfo。然后上传给自己的云服务或者自有服务器。

    2020-05-25
    有用 2
    回复 5
    • 小调
      小调
      2020-05-25
      这样的话,每哥页面都要写一遍,有没有一种方式,只调用一次,类似页面劫持
      2020-05-25
      回复
    • 鹏宇zero
      鹏宇zero
      2020-05-25回复小调
      我之前用的是 类似AOP的方案。但是微信支持不太好。
      思路: 写一个 统计service, 在每个Page 的 onLoad 第一行中初始化。 然后 service获取page对象, 通过AOP 劫持 Page中的函数,进行首尾添加统计。
      上传前通过 自动脚本,在每个page 的 onLoad 中插入 service代码。 做到了半自动化。。我尽力了。。。
      如果有好的方案,欢迎分享。
      2020-05-25
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-05-25回复鹏宇zero
      试试重写Page
      2020-05-25
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-05-25回复小调
      重写Page, 一次重写,一次载入,终生(整个小程序)受用
      你值得拥有
      2020-05-25
      回复
    • 小调
      小调
      2020-05-25回复鹏宇zero
      好的,谢谢
      2020-05-25
      回复
  • 子不语
    子不语
    2020-05-25

    onLoad 和 onReady

    请学会如何「提问」(👈戳我)

    2020-05-25
    有用
    回复
  • 青团社
    青团社
    2020-05-25

    onReady里调用

    2020-05-25
    有用
    回复
登录 后发表内容
问题标签