如何在加载应用程序时显示角度app中的时间倒计时

时间:2018-05-10 12:14:42

标签: javascript angular

我想显示加载程序,它会在加载应用程序时以秒为单位显示时间。这是代码

HTML

(function loader() {
    var elAppLoader = document.querySelector("app-loader");
    var startTime = new Date();

    var counter = setInterval(() => {
       var seconds = Math.abs((new Date().getTime() - startTime.getTime()) / 1000);
       var elLoadingText = document.querySelector(".loading-text");
       elLoadingText.innerHTML = seconds.toFixed(2) + " s";
    }, 100);

    elAppLoader.addEventListener('app-loaded', function (event) {
      clearInterval(counter);
      elAppLoader.remove();
    });
})();

的Javascript

= Iif(  Fields!WellTestMeasLiqRate.Value <=0, Cdec(0),Fields!WellTestTotalGasRate.Value) 
/ 
Iif(  Fields!WellTestMeasLiqRate.Value <=0, Cdec(1),Fields!WellTestMeasLiqRate.Value)

现在这个工作正常并且在每100毫秒后显示屏幕上的秒数,但是当角度开始加载计数器时冻结直到角度被加载。

我该如何解决这个问题?这是因为JS是单线程的,如果有的话有什么方法可以实现这个目的吗?

1 个答案:

答案 0 :(得分:1)

是的,这是因为浏览器忙于解析角度和所有加载的js。

解决这个问题的方法是使用网络工作者。

在此处详细了解:https://www.w3schools.com/html/html5_webworkers.asp 它有一个适合您案例的工作计时器示例