当前位置: 首页 > news >正文

网站介绍视频怎么做的在putty做网站要拷贝什么

网站介绍视频怎么做的,在putty做网站要拷贝什么,网站上的地图导航怎么做,金融网站html5模板目录 现象分析原因 浏览器中Js是单线程的#xff0c;当然不可能出现线程安全问题。只是遇到的问题的现象与多线程的情况十分相似#xff0c;导致对不了解Vue实现的我怀疑起了人生… 现象 项目中用到了element-plus中的加载组件#xff0c;简单封装了一下#xff0c;用来保… 目录 现象分析原因 浏览器中Js是单线程的当然不可能出现线程安全问题。只是遇到的问题的现象与多线程的情况十分相似导致对不了解Vue实现的我怀疑起了人生… 现象 项目中用到了element-plus中的加载组件简单封装了一下用来保证只会出现一个加载框大概是这样 import { ElLoading } from element-pluslet instance let count 0 export function startLoading() {if (count 0) {// 临界区instance ElLoading.service()}count } export function stopLoading() {count--if (count 0) {instance.close()} }使用的时候意外的出现了多个实例但是只保存了最后创建的实例导致界面上有个loading无法关闭。 复现Demo 分析 打断点调试发现到instance ElLoading.service()之后没有继续往下count而是再次去到if (count 0)由于还没有所以count还是0进入if重复创建了loading实例。 这个现象乍一看和有两条线程同时进入了startLoading的情况一模一样。不过我发现后面count的值是没错的所以把count提到前面改成这样问题没有再复现。 export function startLoading() {countif (count 1) {instance ElLoading.service()} }如果存在线程安全那么count如果不是原子操作的话同样的问题还是会出现的。查了一圈资料没有找到相关信息。 最终是在打断点的时候看了一眼调用堆栈发现第二次的startLoading是在第一次的Loading组件mount的时候调用的。也就是说两次调用是串行的嵌套关系而不是并行直接松了一口气 原因 问题的关键在于Vue的watch实现第二次的startLoading是在watch中调用的。watch的数据变化事件会被Vue放到队列中在mount组件时会先处理这个队列所以在mount第一个Loading组件时执行了第二个startLoading 关键方法是flushPreFlushCbs具体之后再学习学习
http://www.w-s-a.com/news/947969/

相关文章:

  • 高度重视机关门户网站建设外包
  • 网站里面送礼物要钱怎么做代码网站开发怎么对接客户
  • 泰州网站制作策划如何做网站需求
  • 门户网站优化报价软件技术公司
  • 怎样换网站logo公司名字大全集免费
  • 为网站网站做推广各类最牛网站建设
  • 网站用自己的电脑做服务器佛山做网站制作公司
  • 一个网站如何做cdn加速器如何上传网站数据库
  • 汝州住房和城乡建设局新网站营销网站定位
  • yy直播官网seo引擎优化是什
  • 做影视网站违法莫品牌营销是什么
  • 全网最稳最低价自助下单网站wordpress电影网站主题
  • 域名更换网站温州建设工程网站
  • 网站如何优化推广连锁店管理网站开发
  • 伊宁市做网站功能性质网站
  • 北京哪个网站制作公司优化大师免费安装下载
  • 同江佳木斯网站设计做网站联系电话
  • 设计上海展会2023seo网站模板下载
  • 开发一个卖东西的网站多少站长工具永久
  • 公司网站怎么突然多了好多友情链接如何删除宁波有几个区
  • 临沂seo网站推广wordpress新编辑器
  • c2c网站设计店面logo设计制作
  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材
  • 个人风采网站制作毕节网站开发公司电话
  • 网络网站销售设计主题和设计理念
  • 做网站一般用什么服务器承德专业做网站