გამოსავალი: setInterval ვერ მუშაობს ნორმალურად ბრაუზერის ფონზე.
ცნობარი
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');