热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

elementUI一次诡异的MessageBox弹框事件

做项目的时候使用MessageBox来提示用户“异地登录”以及“token过期”,直到用户点击了弹框中的“重新登录”按钮,就将用户引导至登录页面。现在

做项目的时候使用 MessageBox 来提示用户 “异地登录” 以及 “token 过期”,直到用户点击了弹框中的“重新登录”按钮,就将用户引导至登录页面。

现在项目中有一个轮询的接口,每15s调用一次,目的是刷取最新的任务信息。正当我有事暂时离开的时候如果 token过期或者账号被挤出来(测试账号是公用的)后用户没有及时点击登录按钮的话,这个弹框就会一直生成,之前没有被关掉的弹框就被覆盖掉了。这个情况大概持续了2min,那么计算一下大概产生了8个没有被及时处理而被覆盖的 MessageBox 弹框。这时候我回来继续处理问题,我发现了界面上的提示,然后我点击“重新登录”,紧接着我导航到产品页面执行新增产品的操作,输入必要信息,ok,一切正常,紧接着点击提交 - 好吧,本着为客户着想的原则,我们在项目中几乎所有涉及新增记录的位置加上了确认框,也包括这里 - 那么如无意外,此时应该弹出一个 MessageBox,询问我“确认提交吗?” 好的,我点击它...纳尼?!居然告诉我 token过期,请重新登录?我才刚刚登录啊,而且这会应该没有人在跟我抢账号才对。吓得我赶紧打开debug,一看不得了,我点击提交的时候压根没有调任何接口,这何其诡异啊。

后来我耗费大量时间做调试,才发现还是因为之前弹出的又没被及时处理的而且被之后弹出的 MessageBox 覆盖掉了的  MessageBox,事实上它并不是被简单的覆盖掉了,确切说是被“挂起”更准确一点,因为在时机合适的时候你仍然能够重新处理它,比如本来有其他新的 MessageBox 弹框生成的时候,事实上弹出的就是那个之前没被处理的 MessageBox。

问题找到了,那就解决它。在我的代码里因为是轮询导致的问题,那么在token过期的时候先弹框提示一次,然后取消轮询就可以了

至于其他方法,比如给 MessageBox 添加 :key="new Date()" 属性来标识是否能解决问题,还请自行测试。


推荐阅读
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文详细探讨了在Android 8.0设备上使用ChinaCock的TCCBarcodeScanner进行扫码时出现的应用闪退问题,并提供了解决方案。通过调整配置文件,可以有效避免这一问题。 ... [详细]
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 本文介绍如何在QT框架中使用QWebSocket和QTcpSocket实现SSL加密通信,涵盖单向认证设置。单向认证常见于Web通信场景,其中客户端验证服务端证书,而服务端不验证客户端证书。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • Vue 循环渲染中如何正确绑定 key 属性
    本文探讨了在 Vue 的模板循环渲染中,如何正确绑定 key 属性以避免重复键值导致的控制台错误,并确保组件高效更新。 ... [详细]
  • 本文介绍了在 PHP 7.1 中使用 openssl_encrypt 函数替代已弃用的 mcrypt_encrypt 函数的方法,并提供了详细的代码示例和常见问题的解决方案。 ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
author-avatar
js陈富军中草药
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有