ដំណោះស្រាយ៖ setInterval មិនអាចដំណើរការជាធម្មតានៅផ្នែកខាងក្រោយនៃ browser បានទេ។

ឯកសារយោង

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');