জাভাস্ক্রিপ্টে মাল্টিথ্রেডিংয়ের জন্য কীভাবে ওয়েব ওয়ার্কার ব্যবহার করবেন?

Jabhaskripte Maltithredinyera Jan Ya Kibhabe Oyeba Oyarkara Byabahara Karabena



জাভাস্ক্রিপ্টে, সাইটের সামগ্রিক ব্যবহারকারী ইন্টারফেস উন্নত করার জন্য একাধিক পদ্ধতি রয়েছে। দ্য 'ওয়েব কর্মী' এটি এমন একটি পদ্ধতি যা মূল থ্রেডটিকে ব্লক না করেই সম্পাদন করতে দেয়। এটির আলাদা জাভাস্ক্রিপ্ট ইঞ্জিন উদাহরণ রয়েছে এবং তাই প্রধান থ্রেডের কার্যকারিতাগুলিকে আহ্বান করতে পারে না।

এই নিবন্ধটি কীভাবে ব্যবহার করবেন তা নিয়ে আলোচনা করা হবে 'ওয়েব কর্মী' জাভাস্ক্রিপ্টে মাল্টিথ্রেডিংয়ের জন্য।







ওয়েব ওয়ার্কার কি?

'ওয়েব কর্মী' একটি ব্রাউজার API-এর সাথে মিলে যায় যা জাভাস্ক্রিপ্টকে একটি পৃথক/ডেডিকেটেড থ্রেডে সমান্তরাল/একই সময়ে কাজগুলি চালাতে সক্ষম করে।



ওয়েব কর্মীদের জন্য প্রয়োজন কি?

যেহেতু জাভাস্ক্রিপ্ট একক-থ্রেডেড, তাই জটিল জাভাস্ক্রিপ্ট কোডগুলি UI থ্রেডকে ব্লক করে, যেমন, রিফ্রেশ করা, ব্যবহারকারীর ইনপুট ইভেন্টগুলি প্রয়োগ করা ইত্যাদির সমস্ত কাজগুলির সাথে মোকাবিলা করে এমন প্রধান উইন্ডোটি বন্ধ করে দেয়৷ এই ধরনের পরিস্থিতিতে, ব্যবহারকারীর অভিজ্ঞতা প্রভাবিত হয়৷ . এই সমস্যা মোকাবেলা করার জন্য, 'ওয়েব কর্মী' কার্যকর হয় এবং UI থ্রেড ব্লক করার সমাধান করে।



জাভাস্ক্রিপ্টের সাথে মাল্টিথ্রেডিংয়ের জন্য কীভাবে ওয়েব ওয়ার্কার ব্যবহার করবেন?

করা a 'ওয়েব কর্মী' , ওয়ার্কার কনস্ট্রাক্টর ব্যবহার করুন। এটি এমন যে এটি একটি ইউআরএলকে তার যুক্তি হিসাবে নেয়, যা কর্মী স্ক্রিপ্ট ফাইলের কাঙ্ক্ষিত কার্যকারিতা বাস্তবায়নের পথের সাথে মিলে যায়। যাইহোক, একটি এইচটিএমএল ফাইলে কর্মী কোড অন্তর্ভুক্ত করতে, a ব্যবহার করুন 'ব্লব' কর্মী কোড লিখতে।





সিনট্যাক্স (একজন ওয়েব কর্মী তৈরি করা)

const এক্স = নতুন কর্মী ( 'worker.js' ) ;

সিনট্যাক্স (কর্মীকে একটি বার্তা পাঠানো)



const এক্স = নতুন কর্মী ( 'worker.js' ) ;

সিনট্যাক্স (কর্মীর কাছ থেকে একটি বার্তা গ্রহণ করা)

এক্স. বার্তা = ফাংশন ( ঘটনা ) {
কনসোল লগ ( ঘটনা তথ্য ) ;
} ;

উদাহরণ: জাভাস্ক্রিপ্টে একটি সংখ্যার ফ্যাক্টরিয়াল গণনা করতে 'ওয়েব ওয়ার্কার' এর ব্যবহার
নিম্নলিখিত উদাহরণ ব্যবহার করে 'কর্মী()' কনস্ট্রাক্টর একটি ওয়েব কর্মী তৈরি করতে এবং একটি সংখ্যার ফ্যাক্টরিয়াল গণনা করে:

DOCTYPE html >
< html >
< মাথা >
< h2 শৈলী = 'টেক্সট-সারিবদ্ধ: কেন্দ্র;' > ওয়েব ওয়ার্কার্স উদাহরণ h2 >
মাথা >
< শরীর >
< লিপি >
const এক্স = নতুন কর্মী ( URL বস্তু URL তৈরি করুন ( নতুন ব্লব ( [
`
// কর্মী স্ক্রিপ্ট
const সত্য = ( n ) => {
যদি ( n == 0 || n == 1 ) {
প্রত্যাবর্তন 1n ;
}
অন্য {
প্রত্যাবর্তন BigInt ( n ) * সত্য ( BigInt ( n ) - 1n ) ;
}
} ;
স্ব বার্তা = ( ঘটনা ) => {
const সঙ্গে = সত্য ( ঘটনা তথ্য ) ;
স্ব বার্তা দিন ( সঙ্গে. স্ট্রিং ( ) ) ;
} ; `
] , { প্রকার : 'টেক্সট/জাভাস্ক্রিপ্ট' } ) ) ) ;
এক্স. বার্তা দিন ( 15n ) ;
এক্স. বার্তা = ( ঘটনা ) => {
const আউট = ঘটনা তথ্য ;
কনসোল লগ ( 'একটি ওয়েব কর্মী-> এর মাধ্যমে 15 এর ফ্যাক্টরিয়াল' , আউট ) ;
} ;

শরীর >

html >

এই কোডে, নিম্নলিখিত পদক্ষেপগুলি প্রয়োগ করুন:

  • প্রথমত, উল্লিখিত শিরোনাম উল্লেখ করুন।
  • এর পরে, একটি তৈরি করুন 'ওয়েব কর্মী' ব্লব অবজেক্টের ইউআরএল থাকা অবজেক্টে কর্মীর কোড থাকে।
  • কর্মীকে উৎসর্গ করা কোডটি একটি বেনামী ফাংশনে অন্তর্ভুক্ত করা হয় যা একটি পুনরাবৃত্ত ফাংশনের মাধ্যমে সংখ্যার ফ্যাক্টরিয়াল গণনা করে।
  • এছাড়াও, কর্মী প্রধান থ্রেড ব্যবহার করে প্রেরিত বার্তা শোনেন 'self.onmessage' ইভেন্ট, পাস করা নম্বরের ফ্যাক্টরিয়াল পুনরুদ্ধার করে এবং এর মাধ্যমে মূল থ্রেডে ফলাফল দেয় 'বার্তা দিন()' পদ্ধতি
  • মূল থ্রেডে, একটি কর্মী দৃষ্টান্ত তৈরি করুন এবং এটি 'নম্বর সহ একটি বার্তা পাঠান 15n ” এখানে, ' n ' 'BigInt' মান বোঝায়।
  • কর্মী ফ্যাক্টরিয়াল গণনা করার পরে, এটি ব্যবহার করে ফলাফল/ফলাফল মূল থ্রেডে ফেরত পাঠায় 'বার্তা দিন()' পদ্ধতি
  • সবশেষে, মূল থ্রেডটি ফলাফলটি নিয়ে আসে/পায় 'বার্তা' ঘটনা এবং কনসোলে নম্বরের সংশ্লিষ্ট ফ্যাক্টরিয়াল প্রদান করে।

আউটপুট

ওয়েব ওয়ার্কারদের সুবিধা

সমান্তরাল প্রক্রিয়াকরণ : একই কোড সমান্তরাল পদ্ধতিতে চালানোর ক্ষেত্রে।

কোড এক্সিকিউশনে কোন ব্যাঘাত নেই: বর্তমান পৃষ্ঠায় রিফ্রেশ ইত্যাদি নির্বিশেষে কোডের সম্পাদন করা হয়।

মুভমেন্ট ট্র্যাকিং: সমস্ত গতি সনাক্তকরণ ব্যাকগ্রাউন্ড ওয়ার্কার মধ্যে সঞ্চালিত হয়.

মাল্টিথ্রেডিং সক্ষম করা হয়েছে: এগুলি জাভাস্ক্রিপ্টে মাল্টিথ্রেডিং সক্ষম করে।

উন্নত কর্মক্ষমতা: পৃথক থ্রেডে নিবিড়/চ্যালেঞ্জিং কাজ করে কর্মক্ষমতা অপ্টিমাইজ করুন।

কার্যকরী ব্যবহারকারীর অভিজ্ঞতা: এগুলি প্রধান থ্রেড ব্লক করা এড়ায়, যার ফলে ব্যবহারকারীর প্রতিক্রিয়াশীল অভিজ্ঞতা হয়।

ওয়েব কর্মীদের সীমাবদ্ধতা

তবে, ওয়েব কর্মীদেরও কিছু সীমাবদ্ধতা রয়েছে। এগুলি নিম্নরূপ বলা হয়েছে:

  • মেমরির বৃহত্তর ব্যবহার।
  • একটি ওয়ার্কার থ্রেডে DOM আপডেট করা যাবে না বা উইন্ডো অবজেক্ট চালু করা যাবে না।

উপসংহার

'ওয়েব কর্মী' একটি ব্রাউজার API এর সাথে মিলে যায় যা জাভাস্ক্রিপ্টকে একটি পৃথক/ডেডিকেটেড থ্রেডে একই সময়ে কাজগুলি চালাতে সক্ষম করে। এগুলিকে যুক্তি হিসাবে একটি URL গ্রহণ করে ব্যবহার করা যেতে পারে, যা কর্মী স্ক্রিপ্ট ফাইলের পথের সাথে মিলে যায়। এই ব্লগটি জাভাস্ক্রিপ্টে মাল্টিথ্রেডিংয়ের জন্য 'ওয়েব ওয়ার্কারদের' ব্যবহার নিয়ে আলোচনা করেছে।