ইভেন্ট বুদবুদ কীভাবে সাধারণত কাজ করে এবং এটি কী ইভেন্ট প্রচারের সমার্থক?


11

আমি ইভেন্টটি চালিত (উপ-) সিস্টেমে ইভেন্টের প্রেরণের সাধারণ কাজকর্ম এবং নীতিগুলির চারপাশে আমার মাথা গুটিয়ে দেওয়ার চেষ্টা করছি।

যদিও আমি এটি জাভাস্ক্রিপ্ট, ফ্ল্যাশ (অ্যাকশনসক্রিপ 2 এবং 3) উদাহরণস্বরূপ বেশ কয়েকটি অনুষ্ঠানে ব্যবহার করেছি এবং এমনকি একবারে নিজের জন্য পিএইচপি-তে একটি সাধারণ ইভেন্ট প্রেরণ ব্যবস্থা তৈরি করেছি, তবে আমি ইভেন্ট বুবলিং এবং / বা সত্যিই বুঝতে পারি নি never প্রচার যে ভাল।

প্রথম প্রশ্ন:
ইভেন্ট বুদবুদ ঘটনা প্রচারের প্রতিশব্দ?

দ্বিতীয় প্রশ্ন:
আমি কি আমার বোঝার মধ্যে সঠিক হয়েছি যে যখন কোনও ইভেন্ট "বুদবুদ" হয়, তার অর্থ এই যে এটি বস্তুর স্তরক্রমকে "সরানো" হয়ে যায়?

তৃতীয় এবং সর্বাধিক গুরুত্বপূর্ণ প্রশ্ন:
২ য় প্রশ্নে আমার বুঝতে যদি সঠিক হয়; কীভাবে এই "চলমান" অবজেক্টগুলির শ্রেণিবিন্যাসকে কার্যকর করা হয়?
এর সাধারণ অর্থ কি পিতামাতারা একই ইভেন্টটিকে তার পিতামাতার কাছে "পুনর্নির্দেশ" করে (এটি মূল অবজেক্টে পৌঁছা না হওয়া পর্যন্ত)? এবং যদি তাই হয়; শ্রেণিবিন্যাসের এই সমস্ত অবজেক্টগুলিকে এই ইভেন্টগুলির জন্য তাদের বাচ্চাদের শোনার দরকার আছে, বা আমি ইভেন্ট বুদবুদ সম্পর্কে আমার বোধগম্যতাতে কিছু গুরুত্বপূর্ণ নীতি অনুপস্থিত রয়েছি, যেখানে পিতা-মাতার অবজেক্টগুলিকে শিশু বস্তুর ইভেন্টের শ্রোতা হিসাবে তাদের নিবন্ধিত করার দরকার নেই?

আপনি যদি কিছু সাধারণ ছদ্ম কোডের মাধ্যমে এই মূল নীতিগুলি বর্ণনা করতে পারেন তবে আমি কৃতজ্ঞ হওয়ার চেয়ে বেশি থাকব।


1
সম্পর্কিত সম্পর্কিত নিবন্ধ: ইভেন্ট অর্ডার
জোনাস

উত্তর:


7

প্রথম প্রশ্ন: ইভেন্ট বুদবুদ ঘটনা প্রচারের প্রতিশব্দ?

নং বুবলিং ইভেন্ট প্রচারের একটি রূপ, তবে এটি প্রতিশব্দ হিসাবে ব্যবহার করা যায় না। চারপাশে কোনও ঘটনা পাস করার জন্য প্রচার একটি সাধারণ শব্দ। বুবলিং ইভেন্ট প্রচারের একটি নির্দিষ্ট কৌশল।

দ্বিতীয় প্রশ্ন: আমি কি আমার বোঝার মধ্যে সঠিক করছি যে যখন কোনও ঘটনা "বুদবুদ" হয়, এর অর্থ এই যে এটি অবজেক্টগুলির শ্রেণিবিন্যাসকে "সরানো" হয়ে যায়?

হ্যাঁ. বুদবুদ মানে টানেলিংয়ের বিপরীতে এটি শ্রেণিবিন্যাসের উপরে উঠে যায় , যার অর্থ এটি শীর্ষ উপাদান থেকে নীচে বা রাউটিংয়ে যায় , যার অর্থ ইভেন্টটি গ্রহণের পরবর্তী অবজেক্টটি আপনি যে কোনও কিছু বেছে নিতে পারেন।

তৃতীয় এবং সর্বাধিক গুরুত্বপূর্ণ প্রশ্ন: ২ য় প্রশ্নে আমার বুঝতে যদি সঠিক হয়; কীভাবে এই "চলমান" অবজেক্টগুলির শ্রেণিবিন্যাসকে কার্যকর করা হয়?

বেশ সহজ. আপনার ভিজ্যুয়াল হায়ারার্কিতে নিয়ন্ত্রণগুলির কাছে তাদের পিতামাতাকে / তাদের শীর্ষ স্তরের ভিজ্যুয়ালটির কাছে একটি রেফারেন্স থাকে বা এটি কোথাও পেতে পারে। সুতরাং যখন তারা কোনও ইভেন্ট ক্যাপচার করে, তারা কেবল এটি সম্পর্কে তার পিতামাতাকে অবহিত করে, যা তার পিতামাতাকে এটি সম্পর্কে অবহিত করে etc.

সিউডো কোডটি কোনও ইউআই নিয়ন্ত্রণের জন্য এটির মতো:

OnEvent(SomeEvent event)
{
   CallHandlersForEvent(event);
   if(HasParent && event.ContinueBubbling == true)
   {
       Parent.OnEvent(event);
   }
}

ব্লুবেরিফিল্ডস এর মতোই বলেছিলেন যে পরবর্তী পিতামাতাদের সরাসরি পিতামাতা হওয়ার দরকার নেই। আপনিও এর মতো বাস্তবায়ন করতে পারেন:

OnEvent(SomeEvent event)
{
    CallHandlersForEvent(event);
    NextControl = VisualTree.GetVisualParent(this);
    if(NextControl != null && event.ContinueBubbling == true)
    {
       NextControl.OnEvent(event);
    }
}

+1 সিউডো কোডটি আমার কাছে অনেক অর্থবোধ করে, ধন্যবাদ! (হিসাবে, আপনার উত্তর বাকি আছে প্রণালী দ্বারা।)
ডিসেন্ট অপটু কর্মী

@ ফ্রিয়েডবয়: আপনাকে স্বাগতম =)
ফ্যালকন

1

প্রথম উত্তর:

ইভেন্ট বুদবুদ একটি নির্দিষ্ট অ্যালগরিদম গাইড ইভেন্ট ইভেন্ট প্রচার।

দ্বিতীয় উত্তর:

না, বুদবুদ কোনও কোনও শ্রেণিবিন্যাসের সাথে সম্পর্কিত নয়। কীভাবে বস্তুগুলি অভ্যন্তরীণভাবে বা অন্য কোথাও উপস্থাপন করা হয় তা সঠিকভাবে অ্যালগরিদমকে সঠিকভাবে কাজ করার ক্ষেত্রে গুরুত্বপূর্ণ নয়। আদর্শভাবে, যখন কোনও ইভেন্ট বুদবুদ হয়, তখন এটি স্ক্রিনের অন্তর্নিহিত দৃশ্যমান উপাদান থেকে স্ক্রিনের বাইরেরতম দৃশ্যমান উপাদান পর্যন্ত প্রসারিত হয়।

তৃতীয় উত্তর:

প্রতিটি (ব্রাউজার) এর ইন্টার্নালগুলি কীভাবে প্রয়োগ করা হয় তার উপর নির্ভর করে বাস্তবায়নের বিশদগুলি অনেকগুলি পৃথক হতে পারে। bubblingঅ্যালগরিদম পর্দায় ভিজ্যুয়াল উপর নির্ভর করে। যদি কোনও এনক্যাপসুলেটিং উপাদান কোনও অন্তর্গত উপাদানের চেয়ে উত্তরাধিকারের স্তরক্রমের উপরে বেশি হয় তবে উদাহরণস্বরূপ, ভাষাতে স্ট্যান্ডার্ড উত্তরাধিকার পদ্ধতি ব্যবহার করে বুদবুদ কার্যকর করা যেতে পারে। তবে এটি অগত্যা সত্য নয় - আপনার কাছে একটি বিশেষ ব্যবস্থা থাকতে পারে যা অভ্যন্তরীণ কাঠামো এবং পর্দায় তাদের দৃশ্যমানতা উভয়ই ব্যাখ্যা করতে পারে এবং অভ্যন্তরীণ সংগঠনটিকে উপেক্ষা করার সময় অ্যালগরিদম অনুযায়ী ইভেন্টগুলি প্রচার করতে পারে।


1
আপনি কেন বলছেন: "বুদবুদ কোনও ধরণের শ্রেণিবিন্যাসের সাথে সম্পর্কিত নয়"। আমার মতে এটা। হায়ারার্কি ছাড়া কোনও বুদবুদ নেই। একরকম গাছ থাকতে হবে। আপনি গাছের কাঠামো ছাড়াই বুদবুদ উদাহরণের নাম বলতে পারেন? আপনার উদাহরণ "অন্তর্ থেকে বহির্মুখী দৃশ্যমান উপাদান পর্যন্ত" কেবল এটি - একটি চাক্ষুষ শ্রেণিবিন্যাস।
ফ্যালকন

1
অবশ্যই, আপনি যদি সত্যিই চান এটির একটি শ্রেণিবিন্যাস হিসাবে এটি ব্যাখ্যা করতে পারেন । আমি এটিকে স্বচ্ছভাবে মিলিত গ্রাফ হিসাবে ভাবতে পছন্দ করি, যার মধ্যে কিছু ভিজ্যুয়াল এবং কিছু অ-ভিজ্যুয়াল উপাদান রয়েছে।
ব্লুবেরিফিল্ডস

2
তবে বুদবুদ উপমা ব্যর্থ হয়। কারণ কোনও গ্রাফে ইভেন্টটি যে কোনও জায়গায় যেতে পারে যখন বুদবুদ স্পষ্টভাবে নীচ থেকে উপরে যায়।
ফ্যালকন

আমার মনে হয় আপনি এটিকে আর একটি সালিশী গ্রাফে বুদবুদ বলতে পারবেন না। এটিকে "ইভেন্ট রাউটিং" বলতে হবে তারপর ইমো।
ফ্যালকন

1
আমি বিশ্বাস করি ফ্যালকন কিছু ন্যায্য বিষয় তুলে ধরে। বুদবুদকে এমন কিছু হিসাবে ভাবতে ভাবা যুক্তিযুক্ত বলে মনে হচ্ছে (একটি শ্রেণিবিন্যাস)।
ডিসেন্ট ড্যাবলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.