ওয়েব ওয়ার্কার এপিআই
- পূর্ববর্তী পৃষ্ঠা ওয়েব স্টোরেজ এপিআই
- পরবর্তী পৃষ্ঠা ওয়েব ফেচ এপিআই
Web Worker পিছনের পটে চলাচলকারী JavaScript, পাতার কার্যক্ষমতা প্রভাবিত করে না।
Web Worker কীভাবে?
HTML পাতায় স্ক্রিপ্ট চালু করার সময়, পাতা স্ক্রিপ্ট সম্পূর্ণ হওয়ার পর্যন্ত অসম্প্রেরণীয় থাকে।
Web Worker পিছনের পটে চলাচলকারী JavaScript, অন্যান্য স্ক্রিপ্ট থেকে স্বাধীন, পাতার কার্যক্ষমতা প্রভাবিত করে না। আপনি যা চান করতে পারেন: ক্লিক করা, কনটেন্ট বাছাই করা ইত্যাদি, এবং সম্পর্কে web worker পিছনের পটে চলাচল করে।
ব্রাউজার সমর্থন
সারণীতে দেওয়া সংখ্যাগুলি Web Worker-এর পূর্ণ সমর্থনকারী প্রথম ব্রাউজার সংস্করণকে উল্লেখ করে:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 4 | IE 10 | Firefox 3.5 | Safari 4 | Opera 11.5 |
2010 সালের ১লা জানুয়ারি | 2012 সালের ৯ই সেপ্টেম্বর | 2009 সালের ৬ই জুন | 2009 সালের ৬ই জুন | 2011 সালের ৬ই জুন |
Web Worker ইনস্ট্যান্স
নিচের উদাহরণটি একটি সাধারণ Web Worker তৈরি করে, যা পিছনের পটে সংখ্যা গণনা করে:
উদাহরণ
গণনা:
Web Worker ব্রাউজার পরীক্ষা
পূর্বে কোনো web worker তৈরি করা আগে, ব্যবহারকারীর ব্রাউজারটির যদি Web Worker-এর সমর্থন থাকে তা নিশ্চিত করুন:
if (typeof(Worker) !== "undefined") { // হ্যাঁ! Web worker সমর্থন! // কোনো কোড..... } // দুঃখ! কোনো Web Worker সমর্থন নেই.. }
Web Worker ফাইল তৈরি করুন
এখন, আমরা বাইরের জাভাস্ক্রিপ্টে আমাদের ওয়েব ওয়ার্কার তৈরি করতে চাই।
এখানে, আমরা একটি গুরুত্বপূর্ণ স্ক্রিপ্ট তৈরি করছি। যা "demo_workers.js" ফাইলে সংরক্ষিত থাকবে:
let i = 0; function timedCount() { i ++; postMessage(i); setTimeout("timedCount()",500); } timedCount();
ওয়ার্কারটির মূল অংশগুলি postMessage()
পদ্ধতি - এইটা হল একটি কোড, যা এইটা হলেন্ড পেজে পাওয়া যাবে。
মন্তব্য:সাধারণত, ওয়ার্কারকে এই ধরণের সাধারণ স্ক্রিপ্টের জন্য ব্যবহার করা হয় না, বরং CPU-র সংকীর্ণ কাজের জন্য ব্যবহার করা হয়。
ওয়েব ওয়ার্কার অবজেক্ট তৈরি করুন
এখন আমরা ওয়ার্কার ফাইল পাচ্ছি, আমরা একটি হলেন্ড পেজ থেকে এটি ব্যবহার করতে হবে。
নিচের কোডটি ওয়ার্কারকে সুযোগ দেয়, যদি ওয়ার্কার নেই, তবে একটি নতুন ওয়ার্কার অবজেক্ট তৈরি করবে এবং "demo_workers.js"-এর কোডটি চালাবে:
if (typeof(w) == "undefined") { w = new Worker("demo_workers.js"); }
তারপর আমরা ওয়ার্কার থেকে বার্তা পাঠাতে এবং গ্রহণ করতে পারব।
ওয়েব ওয়ার্কারে "onmessage" ইভেন্ট লিস্টেনার যোগ করুন。
w.onmessage = function(event){ document.getElementById("result").innerHTML = event.data; };
ওয়েব ওয়ার্কার সংবাদ প্রকাশ করলে, তখন ইভেন্ট লিস্টেনারের কোডটি চালু হবে। ওয়েব ওয়ার্কার থেকে ডাটা event.data-এ সংরক্ষিত থাকবে。
ওয়েব ওয়ার্কার সমাপ্ত করুন
ওয়েব ওয়ার্কার অবজেক্টটি তৈরি হলে, তা বাইরের স্ক্রিপ্ট সমাপ্ত হওয়ার পরও বাকি বাক্যটি শুন্য করবে (যদি তা সমাপ্ত হয় না তবে) পর্যন্ত সংবাদকে শুনে থাকবে。
ওয়েব ওয়ার্কারকে সমাপ্ত করতে এবং ব্রাউজার/কম্পিউটার সংস্থানকে মুক্ত করতে, নিচের কোডটি ব্যবহার করুন: terminate()
পদ্ধতি:
w.terminate();
ওয়েব ওয়ার্কার পুনরায় ব্যবহার
যদি ওয়ার্কার বলিউয়ারে undefined সেট করা হয়, তবে ওয়ার্কার সমাপ্ত হলে, আপনি নিচের কোডটি পুনরায় ব্যবহার করতে পারেন:
w = undefined;
সম্পূর্ণ ওয়েব ওয়ার্কার উদাহরণ কোড
আমরা .js ফাইলে ওয়ার্কার কোডটি দেখেছি। এখন এই এই এই হলেন্ড পেজের কোডটি দেখুন:
উদাহরণ
<!DOCTYPE html> <html> <body> <p>সংখ্যা গণনা: <output id="result"></output></p> <button onclick="startWorker()">ভিডিও শুরু করুন</button> <button onclick="stopWorker()">ওয়ার্কার স্টপ</button> <script> let w; function startWorker() { if (typeof(w) == "undefined") { w = new Worker("demo_workers.js"); } w.onmessage = function(event) { document.getElementById("result").innerHTML = event.data; }; } function stopWorker() { w.terminate(); w = undefined; } </script> </body> </html>
ওয়েব ওয়ার্কার এবং ডম
কারণ ওয়েব ওয়ার্কার বাইরের ফাইলে অবস্থিত হয়, তাই তারা নিচের জেভাস্ক্রিপ্ট অবজেক্টগুলি পরিবেশন করতে পারে না:
- উইন্ডো অবজেক্ট
- ডকুমেন্ট অবজেক্ট
- পারেন্ট অবজেক্ট
- পূর্ববর্তী পৃষ্ঠা ওয়েব স্টোরেজ এপিআই
- পরবর্তী পৃষ্ঠা ওয়েব ফেচ এপিআই