Шийдэл: setInterval нь хөтчийн арын хэсэгт хэвийн ажиллах боломжгүй.

Лавлагаа

Worker

"Вэб ажилчин" гэж юу вэ

"Вэб Ажилчин" нь вэб агуулгад скриптүүдийг арын урсгалаар ажиллуулах энгийн аргыг өгдөг. Threads нь хэрэглэгчийн интерфейсийг хөндөхгүйгээр даалгавруудыг гүйцэтгэдэг. Нэмж дурдахад тэд XMLHttpRequest ашиглан I / O гүйцэтгэж болно. Ажилчин бий болгосны дараа кодыг заасан үйл явдлын боловсруулагч руу илгээх замаар (мөн эсрэгээр) үүнийг үүсгэсэн 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');