วิธีแก้ไข: 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');