栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

违反长时间运行的JavaScript任务花费了xx毫秒

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

违反长时间运行的JavaScript任务花费了xx毫秒

更新 :默认情况下,Chrome 58+隐藏了这些和其他调试消息。要显示它们,请单击“信息”旁边的箭头,然后选择“详细”。

Chrome 57默认情况下启用“隐藏违规”功能。要重新启用它们,您需要启用过滤器,然后取消选中“隐藏违规”框。

当其他人参与该项目时,突然出现

我认为您更新到Chrome56的可能性更大。我认为,此警告是一个了不起的新功能,如果您不顾一切,请仅将其关闭,并且评估师会从您身上夺走分数。其他浏览器中存在潜在的问题,但是这些浏览器并没有告诉您有问题

这些消息是警告而不是错误,因为它实际上不会引起重大问题。否则可能会导致框架掉落或造成不流畅的体验。

但是,值得进行调查和修复以提高应用程序的质量。为此,请注意消息出现在什么情况下,并进行性能测试以缩小问题发生的范围。开始性能测试的最简单方法是插入如下代码:

function someMethodIThinkMightBeSlow() {    const startTime = performance.now();    // Do the normal stuff for this function    const duration = performance.now() - startTime;    console.log(`someMethodIThinkMightBeSlow took ${duration}ms`);}

如果您想获得更高级的知识,还可以使用Chrome的分析器,或使用像这样的基准测试库。

找到花费很长时间的代码(Chrome的阈值为50ms)后,您可以选择以下两种方法:

  1. 删掉一些不必要的任务
  2. 弄清楚如何更快地完成相同的任务
  3. 将代码分为多个异步步骤

(1)和(2)可能很困难或不可能,但有时确实很容易,应该是您的第一次尝试。如果需要,应该总是可以这样做(3)。为此,您将使用类似:

setTimeout(functionToRunVerySoonButNotNow);

要么

// This one is not available natively in IE, but there are polyfills available.Promise.resolve().then(functionToRunVerySoonButNotNow);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号