• electron Tab加载动画开启和关闭


     记个开发中的bug,以此为鉴。眼懒得时候手勤快点儿,不要想当然!!!

    没有转载的价值,请勿转载搬运呦。

    WebContents API:

    Event: 'did-finish-load'

    导航完成时触发,即选项卡的旋转器将停止旋转,并指派onload事件后。

    Event: 'did-stop-loading'

    当tab中的旋转指针(spinner)结束旋转时,就会触发该事件。

    复现步骤:

    1. 使用账号登录客户端系统。
    2. 点击菜单栏菜单,跳转其他系统页面正常,在此页面点击打开任意链接,一直停留在加载动画页面

    截图:

    原因分析:

    页面打开时,loading加载动画及时关闭(did-finish-load),在本页面跳转时,loading动画没有及时关闭(did-finish-load生命周期没有执行到)

    根据此情况又增加了几个生命周期,代码执行情况如下:

    1. this.browserViewList[`${arg.applicationKey}`].webContents.on(
    2. 'did-start-loading',
    3. () => {
    4. _this.browserViewList[`${arg.applicationKey}`].webContents.send(
    5. 'loading-show'
    6. )
    7. log.info('did-start-loading')
    8. }
    9. )
    10. //did-stop-loading
    11. this.browserViewList[`${arg.applicationKey}`].webContents.on(
    12. 'did-stop-loading',
    13. () =>
    14. _this.browserViewList[`${arg.applicationKey}`].webContents.send(
    15. 'loading-hide'
    16. )
    17. )
    18. //dom-ready
    19. this.browserViewList[`${arg.applicationKey}`].webContents.on(
    20. 'dom-ready',
    21. () => log.info('dom-ready')
    22. )
    23. //did-frame-finish-load
    24. this.browserViewList[`${arg.applicationKey}`].webContents.on(
    25. 'did-frame-finish-load',
    26. () => log.info('did-frame-finish-load')
    27. )
    28. //did-finish-load监听加载完成---隐藏loading====>此事件新打开页面会执行,在打开页面链接跳转时不会执行
    29. this.browserViewList[`${arg.applicationKey}`].webContents.on(
    30. 'did-finish-load',
    31. () => log.info('did-finish-load')
    32. )

    跳转1.0系统打开页面执行的生命周期

    在1.0系统跳转链接执行生命周期

    解决方案:

    修改动画关闭的生命周期为did-stop-loading

    webContents 是EventEmitter对象

    webContents是一个EventEmitter. 负责渲染和控制网页, 是 BrowserWindow 对象的一个属性

    removeBrowserView和destroy的区别

    • BrowserWindow.prototype.removeBrowserView()不会破坏浏览器视图,它只会将其从 window 中删除,这意味着它不再可见或附加到窗口,但仍然处于活动状态。
    • view.webContents.destroy()完全删除 BrowserView
  • 相关阅读:
    李沐:机器学习者进阶学习建议
    JavaScript 判断用户输入的文字是否为123开头
    Spring Cloud智慧工地源码,利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术开发,微服务架构
    i7 11800h和i7 1195G7哪个好
    毫米波成像 论文阅读笔记 | HawkEye, CVPR 2020
    对比鸿蒙,Google 的 Fuchsia 当前进度如何?
    leetCode 1539. 第 k 个缺失的正整数
    Matlab:转换日期向量返回意外输出
    状态管理dva:Generator函数
    IDEA重新choose source
  • 原文地址:https://blog.csdn.net/u012761510/article/details/136166510