এইচটিএমএল(৫) ওয়েব ওয়ার্কার-HTML5 Web Worker
পেজের অন্যান্য কার্যক্রমে ব্যাঘাত না ঘটিয়ে এবং অন্যান্য স্ক্রিপ্টের থেকে আলাদাভাবে একটি জাভাস্ক্রিপ্ট ব্যাকগ্রাউন্ডে রান হওয়াকে ওয়েব ওয়ার্কার বলে। ব্যাকগ্রাউন্ডে ওয়েব ওয়ার্কার রান হওয়ার সময় আপনি পেজে নিজের অন্যান্য কাজ করতে পারবেন।
ব্রাউজার সাপোর্ট
বর্তমান সময়ের অধিকাংশ ব্রাউজারেই জিওলোকেশন সাপোর্ট করে। ক্রোম ৪.০, ইন্টারনেট এক্সপ্লোরার ১০.০, ফায়ারফক্স ৩.৫, সাফারি ৪.০ এবং অপেরা ১১.৫ ভার্সন থেকে ওয়েব ওয়ার্কার সাপোর্ট করে।
এইচটিএমএল ওয়েব ওয়ার্কার উদাহরণ
নিচের উদাহরণে একটি ওয়েব ওয়ার্কারের সাধারন উদাহরণ দেওয়া হলোঃ
ফলাফল
ওয়েব ওয়ার্কার সাপোর্ট যাচাই
ব্যবহারকারীর ব্রাউজারে ওয়েব ওয়ার্কার সাপোর্ট করে কিনা যাচাই করার একটি সহজ পদ্ধতিঃ
if (typeof(Worker) !== "undefined") {
// কোড...
}
else {
// দুঃখিত! ওয়েব ওয়ার্কার সাপোর্ট করে না..
}
একটি ওয়েব ওয়ার্কার ফাইল তৈরি
আমরা "test_workers.js" নামক ফাইলের স্ক্রিপ্টের মাধ্যমে গননা করবোঃ
var i = 0;
function timedCount()
{
i = i + 1;
postMessage(i);
setTimeout("timedCount()",1000);
}
timedCount();
ওয়েব ওয়ার্কার অবজেক্ট তৈরি
নিচের কোডে প্রথমে ওয়ার্কার অবজেক্ট তৈরি আছে কিনা যাচাই করা হয়েছে, যদি ওয়ার্কার অবজেক্ট না থাকে তবে ওয়ার্কার অবজেক্ট তৈরি করা হয়েছেঃ
if (typeof(w) == "undefined") {
w = new Worker("test_workers.js");
}
আমরা ওয়েব ওয়ার্কার অবজেক্টে "onmessage" ইভেন্টলিসেনার যুক্ত করে দিব ওয়েব ওয়ার্কার থেকে মেসেজ গ্রহণ এবং প্রেরণের জন্যঃ
w.onmessage = function(event){
document.getElementById("output").innerHTML = event.data;
};
ওয়েব ওয়ার্কার থেকে মেসেজ পোস্ট করার পর ইভেন্টলিসেনারের ফাংশনটি এক্সিকিউট হয় এবং ওয়েব ওয়ার্কারের ডেটা event.data তে জমা হয়।
ওয়েব ওয়ার্কার বন্ধ করা
ওয়েব ওয়ার্কার অবজেক্ট তৈরি করার পর এটি সবসময় মেসেজ পেতে থাকবে যতক্ষন পর্যন্ত একে বন্ধ না করা হবে। ওয়েব ওয়ার্কারের কাজ বন্ধ করার জন্য terminate() মেথডটি ব্যবহার করা হয়ঃ
w.terminate();
ওয়েব ওয়ার্কার পুনঃব্যবহার
আপনি যদি ওয়েব ওয়ার্কারের ভেরিয়েবল অ-সংজ্ঞায়িত ধার্য করেন, সেক্ষেত্রে আপনি কোড পুনরায় ব্যবহার করতে পারেন, ওয়েব ওয়ার্কার বিনষ্ট করার পরেও:
w = undefined;
সম্পূর্ণ ওয়েব ওয়ার্কারের উদাহরণ
আমরা ইতিমধ্যে .js ফাইলে ওয়েব ওয়ার্কার কোড দেখেছি। নীচে এইচটিএমএল পেজের জন্য কোড:
উদাহরণ
<!DOCTYPE html>
<html>
<head>
<title>এইচটিএমএল ওয়েব ওয়ার্কার</title>
</head>
<body>
<p> নাম্বার গননা: <output id="output"></output></p>
<button onclick="startWorker()"> কাজ শুরু</button>
<button onclick="stopWorker()"> কাজ বন্ধ </button>
<br><br>
<script>
var w;
function startWorker() {
if(typeof(Worker) !== "undefined") {
if(typeof(w) == "undefined") {
w = new Worker("test_workers.js");
}
w.onmessage = function(event) {
document.getElementById("output").innerHTML = event.data;
};
} else {
document.getElementById("output").innerHTML = " দুঃখিত! ওয়েব কাজ করছে না।";
}
}
function stopWorker() {
w.terminate();
w = undefined;
}
</script>
</body>
</html>
ফলাফল
ওয়েব ওয়ার্কার এবং DOM
যেহেতু ওয়েব ওয়ার্কারে বহিরাগত ফাইল রয়েছে, তাই তারা নিন্মবর্ত্তী জাভাস্ক্রিপ্ট অবজেক্ট গুলো এক্সেস করতে পারবে না:
- উইন্ডো অবজেক্ট
- ডকু্মেন্ট অবজেক্ট
- প্যারেন্ট অবজেক্ট