কোন পার্থক্য আছে?
হ্যাঁ. একটি টাইমআউট সেটটাইমআউট () বলা হওয়ার পরে একটি নির্দিষ্ট পরিমাণ সময় নির্বাহ করে; পূর্ববর্তী বিরতি বহিস্কারের পরে একটি বিরতি একটি নির্দিষ্ট সময় নির্বাহ করে।
আপনার doStuff () ফাংশনটি কার্যকর করতে কিছুক্ষণ সময় নিলে আপনি পার্থক্যটি লক্ষ্য করবেন। উদাহরণস্বরূপ, যদি আমরা সেটটাইমআউট / সেটইন্টারওয়ালার সাথে একটি কল উপস্থাপন করি .
, সাথে টাইমআউট / ইন্টারভেল *
এবং জাভাস্ক্রিপ্ট কোড এক্সিকিউশন এর সাথে একটি ফায়ারিং [-----]
টাইমলাইনগুলি এর মত দেখাচ্ছে:
Timeout:
. * . * . * . * .
[--] [--] [--] [--]
Interval:
. * * * * * *
[--] [--] [--] [--] [--] [--]
পরের জটিলতাটি যদি জাভাস্ক্রিপ্ট ইতিমধ্যে কিছু করতে ব্যস্ত থাকে তবে অন্তর অন্তর জ্বলজ্বল করে (যেমন একটি পূর্ববর্তী বিরতি পরিচালনা করা)। এই ক্ষেত্রে, অন্তরটি স্মরণ করা হয় এবং পূর্ববর্তী হ্যান্ডলারটি ব্রাউজারে নিয়ন্ত্রণটি ফিরে আসার সাথে সাথে ঘটে। সুতরাং উদাহরণস্বরূপ একটি doStuff () প্রক্রিয়া যা কখনও কখনও ছোট ([-]) এবং কখনও কখনও দীর্ঘ ([-----]) হয়:
. * * • * • * *
[-] [-----][-][-----][-][-] [-]
একটি বিরতি ফায়ারিং প্রতিনিধিত্ব করে যা সরাসরি তার কোডটি কার্যকর করতে পারে না এবং পরিবর্তে মুলতুবি করা হয়েছিল।
তাই ব্যবধানগুলি সময়সূচীতে ফিরে পেতে 'ধরতে' চেষ্টা করে। তবে, তারা একে অপরের শীর্ষে একটি সারি তৈরি করে না: বিরতিতে কেবলমাত্র একবার কার্যকর করা কার্যকর হতে পারে। (যদি তারা সকলেই সারিবদ্ধ থাকে, তবে ব্রাউজারটি বকেয়া ফাঁসি কার্যকর করার তালিকা বর্ধিত হবে!)
. * • • x • • x
[------][------][------][------]
এক্স একটি বিরতি ফায়ারিং প্রতিনিধিত্ব করে যা কার্যকর করা যায় না বা মুলতুবি করা যায় না, সুতরাং পরিবর্তে তা বাতিল করা হয়েছিল।
যদি আপনার doStuff () ফাংশনটি অভ্যাসগতভাবে এর জন্য নির্ধারিত অন্তরালের চেয়ে কার্যকর করতে বেশি সময় নেয় তবে ব্রাউজারটি এটি পরিসেবা করার চেষ্টা করে 100% সিপিইউ খাবে এবং কম প্রতিক্রিয়াশীল হতে পারে।
আপনি কোনটি ব্যবহার করেন এবং কেন?
চেইনড-টাইমআউট ব্রাউজারে ফ্রি সময়ের একটি গ্যারান্টিযুক্ত স্লট দেয়; ইন্টারভাল ব্রাউজার ইউআই উপলভ্যতার ব্যয়ে, নির্ধারিত সময়ে যতটা সম্ভব সঞ্চালিত হয় তার কার্যকারিতাটি নিশ্চিত করার চেষ্টা করে।
আমি ওয়ান-অফ অ্যানিমেশনগুলির জন্য একটি বিরতি বিবেচনা করব আমি যতটা সম্ভব মসৃণ হতে চেয়েছিলাম, যখন শৃঙ্খলিত সময়সীমা চলমান অ্যানিমেশনগুলির জন্য আরও নম্র হয় যা পৃষ্ঠাটি লোড হওয়া অবস্থায় থাকে all কম চাহিদাযুক্ত ব্যবহারের জন্য (যেমন প্রতি 30 সেকেন্ড বা কোনও কিছুতে তুচ্ছ আপডেটেডর গুলি চালানো), আপনি নিরাপদে ব্যবহার করতে পারেন।
ব্রাউজারের সামঞ্জস্যের ক্ষেত্রে, সেটটাইমআউট সেট ইনটারওয়ালটির পূর্বাভাস দেয় তবে আজ আপনি যে সমস্ত ব্রাউজার মিলবেন সেগুলি উভয়ই সমর্থন করে। বহু বছর ধরে শেষ স্ট্রাগলারটি উইনমো <6.5 এ আইই মোবাইল ছিল তবে আশা করি এটিও এখন আমাদের পিছনে।