Digest Cycle中的优化

在上一篇文章中,介绍了Digest Cycle的实现方法$digest的大概逻辑。但是离真正的实现还有相当大的差距,具体的实现比较长,而且其中有很多细节在本篇文章还不会介绍,所以就不贴在这里了,有兴趣的可以去看源码。

现在$digest方法的实现逻辑是这样的:

var ttl = 10;
do {var dirty = false;var length = $$watchers.length;var watcher;for(var idx = 0; idx < length; idx++) {watcher = $$watchers[idx];newVal = watcher.watchFn(scope);oldVal = watcher.last;if (!newVal.equals(oldVal)) {watcher.last = newVal;watcher.listener(newVal, oldVal, scope);dirty = true;}}ttl -= 1;if (dirty && ttl === 0) {throw '10 $digest() iterations reached. Aborting!';}
} while (dirty);

1. 减少watchExp执行次数的优化措施

从上面的逻辑中可以发现,DC至少会执行一遍。如果有任何listener被执行的话,那么DC至少会执行两遍。因此,当一个scope中绑定的watchers数量为1000时,最终会执行2000次与之关联的watchExp。这可是一笔不小的开销。所以我们需要尽可能地减少调用watchExp的次数。

那么如何减少?在上一篇文章中举了一个例子:
假设我们有两个watcher A和B,分别针对属性a和属性b。针对a的watcher A首先执行,如果在B的listener中改变了属性a,那么由于A已经执行过了,就不会判断出a又变“脏”了的事实。可以发现,需要多次执行DC的症结在于在后面执行的watcher中的listener可能会改变已经执行了的watcher所监控的属性。而很明显的是,即使前面执行的listener改变了某个属性,只要该属性对应的watcher在后面执行,就不会出现这个问题。

所以我们可以通过记录最后一个把数据弄“脏”的watcher,来达到减少执行次数的目的。当第二次执行这个watcher时,判断它是否是“干净的”,如果它同时也是上一轮循环中把数据弄“脏”的那个watcher。那么可以认为此轮DC到这里就结束了。下面举个例子来说明它的正确性和有效性:

假设我们有10个watcher,记为[w1, w2, ……, w9, w10]:
现在执行第一轮DC,发现w1的当前值和前值不一样。所以将它w1标记为最后一个把数据弄“脏”的watcher,记为lastDirty。在执行后续的w2到w10时,没有发现脏数据。因此不会执行它们对应的listener。
因为第一轮DC中发现了脏数据,所以按照逻辑需要执行第二次DC。此时发现w1的值没有变化,是“干净的”,同时它也是上一轮DC中被记为lastDirty的那个watcher。因此,此时就可以认为DC没有继续执行下去的不要了,终止DC。此时一共执行了11次(10 + 1)watchExp。相比优化前的20次(10 + 10),减少了9次。

要知道这只是有10个watcher的情况,实际应用中watcher的数量只会远远超过这个值。因此平均而言该优化也能够减少watcher总数/2次的watchExp执行。而考虑到DC执行的相当频繁,这么一个小的优化就能够节省不少的运算资源和时间。

领会到了该优化的思想,改进代码就不是难事了。伪代码如下所示:

var ttl = 10;
var lastDirty;
do {var dirty = false;var length = $$watchers.length;var watcher;for(var idx = 0; idx < length; idx++) {watcher = $$watchers[idx];newVal = watcher.watchFn(scope);oldVal = watcher.last;if (!newVal.equals(oldVal)) {watcher.last = newVal;watcher.listener(newVal, oldVal, scope);dirty = true;lastDirty = watcher;} else if(lastDirty === watcher) {break;}}ttl -= 1;if (dirty && ttl === 0) {throw '10 $digest() iterations reached. Aborting!';}
} while (dirty);

但是,这就完事了吗?就这段逻辑,我们来和angular的实现比较一下:

$watch: function(watchExp, listener, objectEquality, prettyPrintExpression) {......lastDirtyWatch = null;......return function deregisterWatch() {if (arrayRemove(array, watcher) >= 0) {incrementWatchersCount(scope, -1);}lastDirtyWatch = null;};
}

以上是一$watch方法的实现。里面也会对lastDirtyWatch这个变量进行操作。在方法中首先会将它置为空,在返回的注销函数中也会将它置为空。也就是说,当$$watchers数量上发生变化的时候就需要将它清空。清空意味着暂时禁用这一项旨在减少watchExp调用次数的优化。为什么需要这样做呢?

我们不妨考虑一下当在执行DC的时候,watcher数量发生变化会导致什么结果。比如当我们在某个listener中添加了一个watcher时,这个watcher的加入可能会导致某个watcher不能被执行,原因是这样的:

angular实现DC的循环体:

do { // "traverse the scopes" loopif ((watchers = current.$$watchers)) {// process our watcheslength = watchers.length;while (length--) {try {watch = watchers[length];......

可以发现在执行while循环的时候,循环的次数就已经明确了。即使某个listener中又添加了一个watcher,循环的次数是不会改变的。所以总会有一个watcher在这轮DC中不会执行到。而这个watcher就是发生添加watcher行为的watcher的下一个。

原本的watchers数组是这样的:[w1, w2, w3, w4, w5]。
现在在w2的listener中添加了一个新的watcher:w6。由于添加watcher采用的是unshift方法,此时的watchers数组是这样的:[w1, w2, w3, w4, w5, w6]。而循环次数是一定的,5次。所以在执行完了w2之后,还需要循环3次,按照实现逻辑,执行的是w3,w4和w5。可以发现w6就这样被活生生的忽略掉了。而无论后面执行的w3,w4和w5是否是“脏的”,被记录的lastDirty最多只可能是w5。因此在执行第二轮DC时,在运行到w5时发现lastDirty此时已经稳定了,所以判定DC可以结束运行。因此w6永远都没有被执行的机会。所以当watchers数量发生变化的时候,有必要暂时禁用此项优化,保证所有的watcher都有机会得到执行。

2. 处理NaN带来的infinite digest loop问题

了解JavaScript语法规则的同学们对下面这个判断应该都有印象:

NaN === NaN // false

当时看到false这个结果时,差点没吐出一口老血。为什么自己和自己比较还可以不想等。
虽然用到这个结论的场合很有限,但是当切换到angular这个场景中时,没有恰当处理的话可能会抛出你想象不到的错误。

毕竟,是否执行listener的依据就是比较两个值是否相等。而如果不对NaN做特殊处理那么每次都会调用listener,watcher永远没有稳定的那一天。结果就是不断的抛出10 $digest() iterations reached. Aborting!

因此,需要对NaN单独做出判断:

typeof value === 'number' && typeof last === 'number'&& isNaN(value) && isNaN(last)

当满足上面的判断时,也认为两个值是相等的。这样就不会造成错误地调用listener了。

3. 使用reversed while循环方式进行watchers的遍历

循环的方式我们一般认为倒序的会快一点,同时while循环也比for循环要快一点。这里有相关讨论,有兴趣的同学可以看看。

所以在angular的实现中,也采用的是逆序遍历结合while循环的方式。具体到我们的伪代码中:

var ttl = 10;
var lastDirty;
do {var dirty = false;var length = $$watchers.length;var watcher;while(length--) {watcher = $$watchers[length];newVal = watcher.watchFn(scope);oldVal = watcher.last;if (!newVal.equals(oldVal)) {watcher.last = newVal;watcher.listener(newVal, oldVal, scope);dirty = true;lastDirty = watcher;} else if(lastDirty === watcher) {break;}}ttl -= 1;if (dirty && ttl === 0) {throw '10 $digest() iterations reached. Aborting!';}
} while (dirty);

当然,除了性能方面的考量外。使用逆序遍历还有一个很重要的考虑:当一个watcher将其自身移除后,不要影响到后续watcher的执行!

举个例子:
现在有三个watchers:[A, B, C]。在一轮DC时,按照A,B,C的顺序执行。当在执行B的时候,它会将它自身注销掉:

var deregisterB = scope.$watch(function() {deregisterB();
});

在watchExp中执行移除操作后,数组就变成了:[A, C]。
由于执行B的时候执行循环的索引是1,当执行完毕之后索引变为2,此时判断索引和当前数组的长度相等。因此循环结束,就这样C并没有被执行到!

然而,当我们采用逆序遍历后,就不存在这个问题了:
首先执行C,然后在执行B后,循环的索引是0。此时索引0对应的元素正好是C,因此C仍然会被执行。

4. 不暴露watcher的初值—initWatchVal

另外一个细节是,在目前的listener处理逻辑中,watcher的初值是会被暴露出去的。在上一篇文章中,我们讨论了angular为了保证第一次执行watchExp时总会触发listener,会将初值设置为一个function。而显然我们在触发listener时,不需要将该function作为oldValue暴露出去:

watcher.listener(newVal, ((last === initWatchVal) ? newVal: oldVal), scope);

当前值等于初始值时,直接将当前值作为前值作为参数调用listener。

5. 异常处理

目前,DC的核心代码还不够健壮,如果调用watchExp或者listener的过程中出现了异常,那么整个DC就跪了。这显然是不行的,所以需要添加try-catch来保证即使某个watcher出现了问题,也不会影响到其它的watchers。加上了异常处理及以上各种细节后的DC核心代码如下所示:

var ttl = 10;
var lastDirty;
do {var dirty = false;var length = $$watchers.length;var watcher;while(length--) {try {watcher = $$watchers[length];newVal = watcher.watchFn(scope);oldVal = watcher.last;if (!newVal.equals(oldVal)) {watcher.last = newVal;watcher.listener(newVal, ((last === initWatchVal) ? newVal: oldVal), scope);dirty = true;lastDirty = watcher;} else if(lastDirty === watcher) {break;}} catch(e) {console.error(e);}}ttl -= 1;if (dirty && ttl === 0) {throw '10 $digest() iterations reached. Aborting!';}
} while (dirty);

在下一篇文章中,会介绍和DC中$digest方法息息相关的方法:$apply以及$eval

感谢大家花费宝贵时间阅读我的文章,如果发现文中有不妥之处,请赐教!谢谢大家。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 军区总医院 开个双眼皮恢复正常

    ...

    2024/4/21 7:16:36
  2. 长春微创双眼皮术后多久可恢复

    ...

    2024/4/20 18:53:16
  3. 做双眼皮微创好还是开刀好

    ...

    2024/4/29 13:50:00
  4. angular4时间转换,js保留两位小数点(分值转换),angular4前端管道保留两位小数,时间格式化(管道)

    一、 angular4时间转换 在module中注入DatePipe管道 在ts中引入datePipe&#xff0c;然后调用即可&#xff0c; //再module中providers中提供DatePipe import { DatePipe } from angular/common;NgModule({imports: [CommonModule,FormsModule],declarations: [],providers:[D…...

    2024/4/20 18:53:14
  5. Angular JS 学习笔记四

    下面谈谈controller和scope的概念。Angular JS是建立在MVC的架构上&#xff0c;HTML相对于Angular JS来说是view&#xff0c;那我们如何控制view上面的model呢&#xff0c;那我们引入controller的概念。controller就是控制器&#xff0c;就是对数据的操作。最简单的就是加减乘除…...

    2024/4/20 18:53:13
  6. 埋线双眼皮能取出来吗

    ...

    2024/4/21 7:16:35
  7. typescript(angular 2)中 对number类型的数据进行保留小数操作

    ts数据的类型是一个any类型&#xff0c;它有一个number类型的属性&#xff0c;当我们对这个字段进行toFixed()操作时会有这样一个错误&#xff1a; core.js:1427 ERROR TypeError: this.actualViscosity.value.toFixed is not a function解决办法很简单&#xff0c;借助 Number…...

    2024/4/20 12:26:51
  8. css或Angular框架限制文本字数

    文章目录提需求的来了接受挑战总结提需求的来了 某一期迭代时&#xff0c;新增了一个小功能&#xff0c;即&#xff1a;在单元格中的文本内容&#xff0c;字符超过20个字的时候&#xff0c;需要截断&#xff0c;并显示20个字符一个省略号&#xff0c;未超过&#xff0c;无视。 …...

    2024/5/3 2:43:07
  9. angular js 终极购物车

    <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>购物车</title><script src"angularjs/angular.js"></script><style>.box{width: 100%;border-bottom: 1px solid …...

    2024/5/6 6:41:26
  10. 做全切双眼皮两个月

    ...

    2024/4/21 7:16:30
  11. ionic购物加减指令

    app端做商城项目&#xff0c;在购物车或订单里面一般都会用到商品的增、减。这里封装这样的指令&#xff0c;利用angularjs的优势&#xff0c;可以使用复用&#xff0c;方便开发类似此类的加减。 1 drAddSubtrat指令 /*** Created by dzm on 2016/5/28.* 数字增减指令*/ di…...

    2024/4/21 7:16:29
  12. 排序(加减)

    <!DOCTYPE html> <html> <!--排序:语法 数组|orderBy: 属性名 升序排数组|orderBy: 变量 升序排--><head><meta charset"UTF-8"><title></title><!-- 安装 --><script src"js/angular.min.js">&…...

    2024/5/8 11:47:22
  13. angular中的表达式

    其实angular的表达式和javascript中的表达式有相通的地方和不同的地方&#xff1a; 相同的地方就是&#xff0c;和javascript一样angular表达式也可以包含字母、操作符&#xff08;例如加减布尔非等&#xff09;、变量&#xff1b; 不同的地方就是&#xff1a; 1.angularjs不…...

    2024/4/21 7:16:28
  14. 镭射双眼皮多少钱

    ...

    2024/4/21 7:16:26
  15. 定位双眼皮不拆线

    ...

    2024/4/21 7:16:25
  16. 双眼皮粘多久会松弛

    ...

    2024/4/21 7:16:25
  17. 九点法美式双眼皮图片

    ...

    2024/4/21 7:16:30
  18. 如何搭建Angular的环境

    【前言】前几天搭了一个Angular需要的环境&#xff0c;来总结一下在这个过程中学到的东西&#xff0c;欢迎更位大神指导一下&#xff01; 一、什么是Angular 1、定义&#xff1a;Angular 是一个用 HTML 和 JavaScript 或者一个可以编译成 JavaScript 的语言&#xff08;例如 Da…...

    2024/4/21 7:16:22
  19. 全切双眼皮五个月左眼肉条好粗

    ...

    2024/4/21 7:16:21
  20. 通过NPM搭建前端框架

    使用npm安装 项目中需要的框架 是目前主流的安装框架的方法&#xff1a; 需要的材料&#xff1a;nodejs git安装&#xff1b;安装完git和nodejs之后只需要在nodejs所带的命令窗口中进入你的项目所在的文件夹然后输入 npm install jquery&#xff08;同理安装angular bootstrap …...

    2024/4/21 7:16:21

最新文章

  1. 在JavaScript中获取当前页面路径的方法

    在Web开发中&#xff0c;我们经常需要获取当前页面的URL路径&#xff0c;以便进行导航、数据加载或其他与页面相关的操作。JavaScript提供了几种方法来帮助我们实现这一功能。在本文中&#xff0c;我们将探讨几种常用的方法。 方法一&#xff1a;使用 window.location 对象 wi…...

    2024/5/8 17:00:04
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 基于JSPM的美食推荐管理系统

    背景 互联网的迅猛扩张彻底转变了全球各类组织的运营模式。自20世纪90年代起&#xff0c;中国各级政府和企事业单位便开始探索运用网络系统来处理管理事务。然而&#xff0c;早期的网络覆盖不广、用户接受度不高、相关网络法规不健全以及技术发展不成熟等因素&#xff0c;都曾…...

    2024/5/6 6:55:25
  4. 无人机采集图像的相关知识

    1.飞行任务规划 一般使用飞行任务规划软件进行飞行任务的设计&#xff0c;软件可以自动计算相机覆盖和图像重叠情况。比如ArduPilot (ArduPilot - Versatile, Trusted, Open) 和UgCS (http://www.ugcs.com)是两个飞行任务规划软件&#xff0c;可以适用大多数无人机系统。 2.图…...

    2024/5/4 14:22:01
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57