আমি এই পদটি অনেকটা মুখোমুখি হয়েছি এবং গুগলিংয়ের পরেও এর সঠিক অর্থটি এখনও বুঝতে পারি না। অবিচ্ছিন্ন ঘটনাটি যে কেউ সরবরাহ করতে পারে তার সংজ্ঞাটি কি কিছু সহজ (আদর্শ সহ আদর্শের সাথে) রয়েছে?
ধন্যবাদ!
উত্তর:
নন প্রোগ্রামিং উদাহরণ:
সিঙ্ক্রোনাস আপনি রাতের খাবারের জন্য পিজ্জা চান এবং আপনি হিমশীতল থেকে বেরিয়ে যান। সুতরাং আপনাকে ওয়াউ বাজানো বন্ধ করতে হবে যা আপনার গিল্ডকে আপসেট করে। আপনি রান্নাঘরে যান, ময়দা তৈরি করুন, এটি সস দিয়ে coverেকে রাখুন, পনির যোগ করুন এবং এটি আপনার প্রিয় বেকন টপিংকে স্মুথ করুন। আপনি ওভেনে আরও 10 মিনিট দিয়ে পিজ্জা তৈরি করতে আপনার সময়টির 20 মিনিট ব্যয় করেছেন। টাইমার বিপস এবং আপনি গরম পাই টানুন। আপনি আপনার কম্পিউটারের সামনে বসে বসে পিজ্জা খেতে পারেন এবং আপনার আক্রমণ চালিয়ে যেতে পারেন।
অ্যাসিঙ্ক্রোনাস আপনি ডাব্লুডাব্লু খাওয়ার সময় রাতের খাবারের জন্য পিজ্জা চান। আপনি আপনার 5 ম মনিটরে একটি ব্রাউজার উইন্ডো খুলুন। আপনি পিজ্জা ওয়েবসাইটটি লোড করুন এবং বেকন গ্রীস রসুন সসের পাশ দিয়ে আপনার অতিরিক্ত চিজি বেকন পিজ্জা অর্ডার করুন। আপনি আপনার অভিযানে ফিরে যান এবং 20 মিনিটের পরে দরজার ঘণ্টা বাজে। আপনি পিজ্জা পান। আপনি আপনার কম্পিউটারের সামনে বসে বসে পিজ্জা খান এবং আপনার আক্রমণ চালিয়ে যান।
তাহলে পার্থক্য টা কি? একটি উপায় আপনি 20-30 মিনিটের মূল্যবান WOW সময় নষ্ট করেন, অন্যভাবে আপনি 20 ডলার প্লাস টিপ নষ্ট করেন।
আপনার পৃষ্ঠাটি সার্ভার থেকে ক্লায়েন্ট ব্রাউজারে বিতরণ করা হয়েছে, কোথাও ইন্টারনেটে। ব্রাউজারটি পৃষ্ঠাটি একটি স্ক্রিনে আঁকেছে, এবং কেউ - বা কোনও জিনিস - এটি দেখছে। এটি একটি অপেক্ষার খেলা। চোখের সামনে এবং তারপরে সরে যেতে, এই বা তার সাথে বিশদ পদক্ষেপ নিয়ে বিশদটি নেওয়া, এখন দিকে এবং তখন পর্দা থেকে দূরে, পরিবেশের বিঘ্নগুলি তদন্ত করতে। ঘড়ির টিক্স পৃষ্ঠাটি মৃদুভাবে, প্যাসিভভাবে জ্বলজ্বল করছে যেহেতু ব্যবহারকারী নিষ্ক্রিয়ভাবে ঘোরাচ্ছে, হাতটি আস্তে আস্তে মাউসের উপর দিয়ে আঁকছে, ঘাড়টি নীচে বাঁকা এবং আপনার পৃষ্ঠায় যে অফার দিতে হবে সেটিকে আমন্ত্রণ জানাতে এমন আরও কিছু কিছু লক্ষ্য করছে।
হঠাৎ, কোনও সতর্কতা ছাড়াই, কার্সারটি মাউসের হাত সামান্য শক্ত হয়ে যাওয়ার সাথে সাথে টেবিলের রুক্ষ পৃষ্ঠের উপরে ছোট্ট প্লাস্টিকের ধাক্কাটা ধাক্কা দিতে শুরু করে। মাউসটি চলার সাথে সাথে স্ক্রিনের তার সারোগেটটি আপনার পৃষ্ঠার সামগ্রীতে অতুলনীয় আকর্ষণীয় চিত্র এবং মজাদার মন্তব্যগুলিকে ঘনিষ্ঠভাবে অনুকরণ করে চলবে। অবশেষে একটি সিদ্ধান্ত নেওয়া হয়, চলাচল থেমে যায়, একটি পেশী বা দুটি চুক্তি সামান্য হয় এবং মাউস বোতামটি একটি জোরালো আঙুল দ্বারা হতাশ হয়। মাউসের মাইক্রোসুইচ একটি বৈদ্যুতিন প্রেরণা ট্রিগার করে, এবং হঠাৎ ব্রাউজারটি কী ঘটেছে সে সম্পর্কে সচেতন হয়: একটি মাউস ক্লিক।
এই সমস্ত ক্ষেত্রে, পৃষ্ঠাটিতে দেখার সময় ব্যবহারকারী যা কিছু করেছিলেন তা সমস্ত কিছু ব্রাউজারের কাছে, আপনার ওয়েবপৃষ্ঠায় থাকা কোনও ক্লায়েন্ট কোডে, আপনার সার্ভারে থাকা যে কোনও বাসিন্দার কাছে সম্পূর্ণ অপ্রত্যাশিত। মানুষের ক্রিয়াগুলির মধ্যে কোনও জ্ঞাত "অপেক্ষা করার সময়" ছিল না was সুতরাং, ব্যবহারকারীর কম্পিউটারে আবদ্ধ সরঞ্জাম দ্বারা সংক্রামিত ক্রিয়াগুলি যখন ঘটেছিল তখন কোনও ঘটনাক্রমে ঘড়ি অনুসারে ঘটে না - ঘটেছিল, এগুলি অবিচ্ছিন্নভাবে ঘটেছিল ।
একটি সাক্ষাত্কারের শেষের কথা ভাবেন, এবং তারা লোক বলে, "আমাদের ডাকবেন না, আমরা আপনাকে ডাকব"। এটি একটি অ্যাসিক্রোনাস ইভেন্টের সারাংশ।
সাধারণত আপনি ফাংশন সংজ্ঞায়িত করেন এবং আপনি ফাংশনগুলি স্পষ্টভাবে কল করেন। আপনার প্রোগ্রামটির একটি কাঠামো রয়েছে যেখানে এটি লাইন 1 থেকে শুরু হয়, তারপরে লাইন 2 এবং কিছু শর্তসাপেক্ষ কোড এবং পুনরাবৃত্তি বাদে, কলিং ফাংশন ইত্যাদির বাইরে একটি সরল, লাইনার, সিঙ্ক্রোনাস কাঠামো রয়েছে।
তবে কিছু কিছু ক্ষেত্রে আপনার ক্রিয়াকলাপগুলি রয়েছে যা প্রোগ্রামের সরাসরি নিয়ন্ত্রণের বাইরে ইভেন্টগুলির দ্বারা ট্রিগার হয়, প্রোগ্রামগুলির বাইরে থেকে আসা জিনিসগুলি যেমন একটি ইউজার ইন্টারফেস ইভেন্ট (ব্যবহারকারী মাউস ক্লিক করে) বা একটি নেটওয়ার্ক ইভেন্ট (কেউ এর সাথে সংযোগ স্থাপনের চেষ্টা করে) আপনার সার্ভার)। আপনার কোডগুলি সরাসরি এই ইভেন্টগুলি উত্পন্ন করে না। তারা আপনার প্রোগ্রামের বাইরে তৈরি করা হয়, প্রায়শই ওএস দ্বারা তাদের ব্যবহারকারী ইন্টারফেস ডিভাইস এবং অন্যান্য সিস্টেমে তাদের পর্যবেক্ষণের ভিত্তিতে। এগুলিকে অ্যাসিক্রোনাস ইভেন্ট বলা হয়।
শুধু মনে রাখবেন, "আমাদের ডাকবেন না, আমরা আপনাকে কল করব"
"প্রোগ্রামিংয়ে, অ্যাসিক্রোনাস ইভেন্টগুলি মূল প্রোগ্রামের স্বতন্ত্রভাবে ঘটে থাকে As অ্যাসিনক্রোনাস ক্রিয়াকলাপগুলি একটি অ-ব্লকিং স্কিমে কার্যকর করা হয়, যা মূল প্রোগ্রাম প্রবাহকে প্রক্রিয়াজাতকরণের অনুমতি দেয় allowing"
"অ্যাজাক্সের সাহায্যে ওয়েব অ্যাপ্লিকেশনগুলি বিদ্যমান পৃষ্ঠার প্রদর্শন এবং আচরণে কোনও হস্তক্ষেপ না করে পটভূমিতে সংশ্লেষপূর্ণভাবে সার্ভার থেকে ডেটা উদ্ধার করতে পারে" "
আপনি যখন সম্পাদনা করুন এবং এসও-তে সংরক্ষণ করুন এ ক্লিক করুন এটি অযৌক্তিকভাবে ঘটছে।
অ্যাসিঙ্ক্রোনাস ইভেন্ট এমন একটি ইভেন্ট যা অ্যাপ্লিকেশনটির মূল থ্রেডের বাইরে চলে।
বোঝার সর্বোত্তম উপায় হ'ল ঘটনাগুলির সাথে সিঙ্ক্রোনালি চলমানগুলির সাথে তুলনা করা। সর্বাধিক সাধারণ উদাহরণটি হ'ল ওয়েব পৃষ্ঠা লোড করা।
আপনি যখন এই পৃষ্ঠায় যান, আপনি একটি লিঙ্কে ক্লিক করেছেন এবং পৃষ্ঠাটি লোড হওয়ার জন্য অপেক্ষা করেছিলেন এবং এটি লোড হওয়া শেষ না হওয়া পর্যন্ত এই পৃষ্ঠাটির সাথে ইন্টারঅ্যাক্ট করতে বা ব্যবহার করতে সক্ষম হননি। বিপরীতে, যদি এই পৃষ্ঠায় কোনও ব্যবহারকারীর ক্রিয়াকলাপের সাথে যুক্ত একটি এজ্যাক্স ইভেন্ট (এটি অ্যাসিনক্রোনাস জাভাস্ক্রিপ্ট এবং এক্সএমএল ইভেন্ট) থাকে তবে এই পৃষ্ঠাটি অন্য কোনও ক্রিয়াকলাপের সাথে সমান্তরালভাবে (তাত্ত্বিকভাবে) অন্য উত্স থেকে কিছু ডেটা লোড করবে।
দুটি সিঙ্ক্রোনাস ইভেন্ট (এ এবং বি) সহ উদাহরণ: প্রথম এ কিছু করে। ক শেষ হলে বি কিছু করে।
দুটি অ্যাসিক্রোনাস ইভেন্ট (এ এবং বি) এর সাথে উদাহরণ: A এবং B উভয়ই একই সময়ে কিছু করে এবং ইভেন্ট দুটিই অপরের জন্য অপেক্ষা করে না।
এখানে জাভাস্ক্রিপ্টে একটি অ্যাসিনক্রোনাস অপারেশনের উদাহরণ রয়েছে (আপনার জাভাস্ক্রিপ্ট কনসোলটি উন্মুক্ত করা দরকার)
console.log('One!');
setTimeout(function(){console.log('Two!');},0);
//Doesn't wait
console.log('Three!');};
//OUTPUT:
//One!
//Three!
//Two!
এর console.log('Two!')
পরে ঘটে যাওয়া বাকী কোডটি ব্লক না করে কলটি কার্যকর করা হবে।
সত্যিকারের দৃশ্যে, ওয়েবপৃষ্ঠায় বোতামে ক্লিক করা কারও সাথে সেটটাইমআউট প্রতিস্থাপন করুন। বোতাম ক্লিকের প্রতিক্রিয়া শেষ পর্যন্ত ঘটবে, পৃষ্ঠা রেন্ডারিংয়ের মতো অন্যান্য কোড প্রয়োগকে অবরুদ্ধ না করে।
সহজ কথায় বলতে গেলে এর অর্থ এমন কিছু যা অজানা সময়ের পরে ঘটে থাকে তাই তাত্ক্ষণিক ফলাফল আশা করবেন না।
উদাহরণস্বরূপ, "মা, আমার কি পাঁচ ডলার থাকতে পারে?"
অর্থের জন্য আমার হাত বাড়িয়ে দেওয়া আমি প্রত্যাশা করছি যে তিনি আমাকে তাত্ক্ষণিকভাবে অর্থ প্রদানের মাধ্যমে সাড়া দেবেন (সিনক্রোনাস)।
বাস্তবে, তিনি আমার দিকে দু'এক মুহুর্তের দিকে তাকাবেন এবং তারপরে তিনি (অ্যাসিনক্রোনাস) চাইলে সাড়া দেওয়ার সিদ্ধান্ত নেবেন।
অ্যাসিঙ্ক্রোনাস ইভেন্টগুলি সেই ইভেন্টগুলি যা আমরা জানি না ভবিষ্যতে কখন এটি ঘটবে উদাহরণস্বরূপ যখন কোনও ফাইলের জন্য যখন সার্ভারকে অনুরোধ করা হয় আমরা জানি না এটি কখন আমাদের অনুরোধটি পূরণ করবে বা ইউআই ইভেন্টগুলি আমরা জানি না কখন ব্যবহারকারী হবে একটি বোতাম বা অন্যান্য ইউআই উপাদানটিতে ক্লিক করুন, তবে এটি সত্ত্বেও পৃষ্ঠা বা অ্যাপ্লিকেশনটিতে অন্যান্য জিনিস ঘটছে তা কিছু বলাকে বাধা দেয় না যতক্ষণ না সার্ভার থেকে কোনও ফাইল আসছে না বা কিছু ইভেন্ট ঘটছে না সে পর্যন্ত পৃষ্ঠাটি সমস্ত UI কে আউট করে দিয়েছে gre এটি অ্যাসিক্রোনাস ইভেন্টগুলির শক্তি, কেবল স্বাধীন ইভেন্টগুলি বলুন
সিঙ্ক্রোনাস বনাম অ্যাসিঙ্ক্রোনাস ইভেন্টস
ইভেন্টটি উপস্থিত হওয়ার সাথে সাথে কিছু ইভেন্ট হ্যান্ডলারের কল করা হয়। এগুলিকে বলা হয় 'সিঙ্ক্রোনাস' ইভেন্ট। একটি উদাহরণ হ'ল ডকুমেন্টনিউ। ব্যবহারকারী একটি নতুন দস্তাবেজ তৈরি করার সাথে সাথে এটি কল হয়ে যায়।
যাইহোক, ইভেন্টটি ঘটে যাওয়ার কিছুক্ষণ পরেই কিছু ইভেন্ট ডাকা হয়, সাধারণত অলস সময়ের পরে। এগুলিকে বলা হয় 'অ্যাসিনক্রোনাস' ইভেন্ট। তারা অবিচ্ছিন্ন কারণ কোনও ব্যবহারকারী-লিখিত ম্যাক্রোটিকে ঘটনার সঠিক সময়ে ডেকে আনা হলে এটি উত্স অন্তর্দৃষ্টিকে অচল করে দেবে।
কোডটি যদি সিঙ্ক্রোনাস হয় (বা সিঙ্ক হয়) তবে এর অর্থ কোডের প্রতিটি টুকরা ক্রমানুসারে চলে এবং পরের কোডটির পরবর্তী অংশটি শেষ না হওয়া পর্যন্ত চলতে পারে না। বেশিরভাগ কোড সাধারণত সিঙ্ক্রোনাস হয়।
কোডটি যদি অ্যাসিঙ্ক্রোনাস (বা অ্যাসিঙ্ক ) হয় তবে এর অর্থ হ'ল কোডটি অন্য কোডের থেকে পৃথক এবং স্বাধীনভাবে চলতে পারে। এই নির্দিষ্ট প্রশ্নের প্রসঙ্গে যদি একটি গুচ্ছ সিঙ্ক কোডের মাঝে অ্যাসিঙ্ক কোড থাকে তবে এই সিঙ্ক কোডটি আপনি যেখানে রেখেছেন তা নির্বিশেষে অ্যাসিঙ্ক কোডটি কেবল তখনই চলবে যখন এর ইভেন্টটি ট্রিগার করা হবে। এটি সিঙ্ক কোডের থেকে সম্পূর্ণ পৃথক এবং স্বতন্ত্র এবং যখনই এর ইভেন্টটি বলে তখনই চলে, কেবল কোডের আগের অংশটি চলাকালীন নয়। এর কয়েকটি উদাহরণ কোডের জন্য যা একটি সময়সীম বিরতিতে চলে, কোনও ফাইল সফলভাবে সংরক্ষণের পরে, ওয়েব অনুরোধ প্রেরণের পরে, যখন ব্যবহারকারী কোনও বোতাম ক্লিক করে বা কোনও চিত্র লোড হওয়ার পরে।