我想显示加载程序,它会在加载应用程序时以秒为单位显示时间。这是代码
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是单线程的,如果有的话有什么方法可以实现这个目的吗?
答案 0 :(得分:1)
是的,这是因为浏览器忙于解析角度和所有加载的js。
解决这个问题的方法是使用网络工作者。
在此处详细了解:https://www.w3schools.com/html/html5_webworkers.asp 它有一个适合您案例的工作计时器示例