今天是4月24日,是我们项目小组进行项目进行的第3周了,哎,我感觉自己好废啊,对idea的一些基础操作一塌糊涂,只会写页面,提交都是让后端的大佬们帮忙弄的,因为怕出错了,但是还是出错了,写的一个星期的东西因为太久没有提交导致提交出现问题的,又从分支上拉取少好多东西,还出现问题,大佬帮我弄好长时间才弄过来,东西还找不过来了,又重新赶紧改改,自己拖大家的后腿了。保证每天晚上走之前把代码提交一下,剩余的时间不多了,要抓紧点再!
再平常我们会在页面上进行一个计算(比如计算斐波那契数列)遇到这个我们如果放一个input标签来输入去直接计算第几个斐波那契数,如果这个数足够大(我才算到45就卡的不要不要的了),会造成浏览器卡顿,其实解决这个问题的方法有好多种,这里写一下之前遇到的一种,通过分线程去解决这个问题
主线程和分线程:
在一个html里面写下面js代码(为我们的主线程)
var ipt = document.querySelector('input');
var btn = document.getElementById('demo');
btn.onclick = function () {
var worker = new Worker('worker.js');
console.log(worker);
console.log("主线发送的数据为"+ipt.value);
worker.postMessage(ipt.value);
worker.onmessage = function(event){
console.log("主线接收的数据为"+event.data);
alert(event.data);
console.log(event);
}
这里我们创建了一个worker对象,并且指向work.js这个js文件
这里再写一个worker.js的js文件(这个文件并不需要引入到html页面中去)
function f(n){
return n <= 2? 1: f(n-1)+f(n-2);
}
var onmessage = function(event){
console.log(event);
var number = event.data;
console.log("分线程接收的数据为"+number);
var result = f(number);
console.log("分线程向主线程发送的数据为"+result);
postMessage(result);
}
这样当我们计算大写的斐波那契数时就不会造成页面卡顿,只是慢了写,但是我们可以去去操控页面,当数被计算好了,就会被返回来,可以通过提示框进行提示。
人都会犯错误,这是人们为什么给铅笔添上橡皮擦的理由,错误不可怕,可怕的是没有改正错误的决心!
一起加油!!!