RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1452687
Accepted
Салават
Салават
Asked:2022-09-29 23:06:23 +0000 UTC2022-09-29 23:06:23 +0000 UTC 2022-09-29 23:06:23 +0000 UTC

如何计算js脚本执行时间?

  • 772

大家好,我正在为一个点击调用函数的脚本而苦苦挣扎,我试图把它放在一个承诺中:

$('.csv').on('click', async function ()
{
let start = new Date.getTime()
        let promiseScript = new Promise(function (resolve, reject)
        {

            // мой код...
        }
          resolve("done");
        });
let end = new Data.getTime()
        await promiseScript.then(document.querySelector('.description').innerHTML += `<span>На выполнение скрипта
 ушло ${end - start} ms</span>`);


            });

但问题是它首先显示脚本的执行时间,然后才开始执行脚本。如何正确测量此脚本的执行时间?

javascript
  • 2 2 个回答
  • 47 Views

2 个回答

  • Voted
  1. Best Answer
    Daniil Loban
    2022-09-30T00:18:57Z2022-09-30T00:18:57Z

    promiseScript最好通过声明函数,const因为您不更改它。为了使毫秒 > 0 变得明显,我将输出添加到控制台并清除它,这需要一些时间。

    由于我们在其中进行计算,start然后end我们可以将它们传递到外部,resolve并且毫无问题地将它们then通过дестурктуризацию:

    为了更好的代码结构和可重用性,我创建了一个单独的函数来测量时间measureTime,以及一个可测试的函数testFinction和一个运行测试的按钮上的点击处理程序。

    // функция замера времени
    // func - тестируемая функция
    const measureTime = func => new Promise((resolve, reject) => {
      let start = (new Date).getTime()
      func() // вызываем тестируюмую функцию
      const end = (new Date).getTime()
      resolve([start, end]);
    })
    
    // какая-то тестируемая функция
    const testFinction = () => {
      // мой код...
      console.log('')
      console.clear() // очищаем консоль
    }
    
    document.querySelector('.csv').onclick = async function (){
      // замеряем время testFinction
      const [start, end] = await measureTime(testFinction)
      // выводим результат
      document.querySelector('.description').innerHTML += 
      `<span>На выполнение скрипта  ушло ${end - start} ms</span></br>`
    };
    <button class="csv">Произвести замер</button>
    <p class="description"></p>

    • 1
  2. SwaD
    2022-09-29T23:37:12Z2022-09-29T23:37:12Z
    $('.csv').on('click', async function ()
    {
    let start = new Date.getTime()
            let promiseScript = new Promise(function (resolve, reject)
            {
    
                // мой код...
            }
              resolve("done");
            });
            await promiseScript.then(() => { 
                let end = new Data.getTime()
                document.querySelector('.description').innerHTML += `<span>На выполнение скрипта
     ушло ${end - start} ms</span>`);
            }
        });
    

    如果您正在调试应用程序并且您不需要页面上的此铭文,则可以像这样测量执行时间:

    $('.csv').on('click', async function ()
        {
        console.time('csvClick');
        let promiseScript = new Promise(function (resolve, reject)
            {
    
                // мой код...
            }
              resolve("done");
            });
            await promiseScript.then(() => { 
                let end = new Data.getTime()
                document.querySelector('.description').innerHTML += `<span>На выполнение скрипта
     ушло ${end - start} ms</span>`);
            }
        console.timeEnd('csvClick');
        });
    

    在控制台中,您将看到正确的时间,因为。在您的情况下,您没有考虑在 DOM 中呈现组件的时间。

    • -1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5