วิธีแก้ไข: setInterval ไม่สามารถทำงานได้ตามปกติในพื้นหลังของเบราว์เซอร์
ข้อมูลอ้างอิง
Worker"Web Worker" คืออะไร
"Web Worker" เป็นวิธีง่ายๆสำหรับเนื้อหาเว็บในการเรียกใช้สคริปต์ในเธรดพื้นหลัง เธรดสามารถทำงานได้โดยไม่รบกวนอินเทอร์เฟซผู้ใช้ นอกจากนี้ยังสามารถดำเนินการ I / O โดยใช้ XMLHttpRequest เมื่อสร้างแล้วผู้ปฏิบัติงานสามารถส่งข้อความไปยังโค้ด JavaScript ที่สร้างขึ้นโดยโพสต์ข้อความไปยังตัวจัดการเหตุการณ์ที่ระบุโดยโค้ด (และในทางกลับกัน)
คำแนะนำ
ในโค้ดตัวอย่างด้านล่างเราใช้ตัวจับเวลาที่ง่ายที่สุดและปล่อยให้ทริกเกอร์ทุกๆ 100 มิลลิวินาที
var timmer = new Worker(
URL.createObjectURL(
new Blob(
[
"onmessage=function(event){setInterval(function(){postMessage(1);},100)}",
],
{ type: "application/javascript" }
)
)
);
timmer.onmessage = function (event) {
console.log("get message");
};
timmer.postMessage("start");
การใช้งานมาตรฐาน
ในตัวอย่างข้างต้นเราได้สร้างที่อยู่โดยใช้ createObjectURL เนื่องจากโค้ดที่เราต้องดำเนินการนั้นค่อนข้างง่ายวิธีนี้จึงมีความกระชับ เมื่อโค้ดในงานที่เราต้องดำเนินการมีความซับซ้อนมากขึ้นเราสามารถเขียนงานแยกกันเป็นไฟล์ js อิสระ สำหรับรายละเอียดโปรดดูรหัสต่อไปนี้ มีคำแนะนำโดยละเอียดเพิ่มเติมคุณสามารถดูข้อมูลอ้างอิงได้ที่ด้านบนของบทความ
var timmer = new Worker('worker.js');