• 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
  • 相关阅读:
    宝塔站点配置
    把c盘的文件移到d盘后找不到了怎么办
    21天学习挑战赛-线性表(上)
    java计算机毕业设计知识库系统源码+系统+lw+数据库+调试运行
    Neo4j 新手教程 环境安装 基础增删改查 python链接 常用操作 纯新手向
    万字肝完nodejs入门教程,详解入口,建议收藏(更新中)
    【Codeforces】 CF1762E Tree Sum
    MongoDB官网查看 MongoClient 驱动API 文档的详细步骤
    Qt的简单应用:翻金币游戏( 含源码 )
    SpringCloudAlibaba的nacos控制台不断输出日志
  • 原文地址:https://blog.csdn.net/u012761510/article/details/136166510