我正在此代碼:JS - Web Workers如何工作?
JS
<script src='file://C:\blablabla\JavaScript\bignumber.js-master\bignumber.js'></script>
<script>
document.write("<h1>\"blabla\"</h1>\n<h3>blabla</h3>");
function problem(){
var img = document.getElementById('problemi');
return img.style.display = img.style.display === 'block' ? 'none' : 'block';
}
function problem551(){
problem();
var t0 = performance.now();
var max = 1e+15;
var sum = new BigNumber(1);
for(var i=1;i<max;i++)
sum = sum.plus(scomponi(sum,0));
var t1 = performance.now();
document.getElementById("p551").innerHTML = 'blabla<span>'+max+"</span> blabla <span>" + sum +"</span> in <span>"+(t1 - t0)/1000+"</span> blaaa";
}
function scomponi(num,sum){
var str=num.toString();
for(var i = 0 ; i< str.length ;i++){
sum += parseInt(str[i]);
}
return sum;
}
</script>
HTML
<body>
<div>
<button onclick="problem551()" >PROBLEM 551</button>
<img id="problemi" src="PROBLEM551.png" style="display: none;">
<p id="p551"></p>
</div>
</body>
但瀏覽器崩潰,它給了我這樣的:
如何防止我的功能發生這種錯誤,他有一個循環從1到1e + 15,所以它需要太多的時間。我讀了一些關於網絡工作者的文章,但沒有爲我提供。我想用我的功能problem551(),所以有人可以解釋我是如何工作的?
網絡工作者被推薦用於資源密集型任務,而不是必須長時間運行的任務。首先,您應該看看您是否可以提高現有代碼的性能。 https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers –
在這種情況下'var myWorker = new Worker(「worker.js」);'如果我想使用我的函數isteand worker.js? – Teshtek
你想在那裏做什麼? – Cerbrus