ដំណោះស្រាយ៖ 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');