shim
আপনি যদি অ্যাডাপ্টারের প্যাটার্নটির সাথে পরিচিত হন, তবে আপনি শিথর কী তা জানেন। শিমস এপিআই কলগুলিকে বাধা দেয় এবং কলার এবং লক্ষ্যটির মধ্যে একটি বিমূর্ত স্তর তৈরি করে। পিছনে সামর্থ্যের জন্য সাধারণত শিমগুলি ব্যবহৃত হয়। উদাহরণস্বরূপ es5-shim এনপিএম প্যাকেজ আপনাকে ECMAScript 5 (ES5) সিনট্যাক্স লিখতে দেবে এবং ব্রাউজারটি ES5 চলছে কিনা তা যত্ন নেবে না। একটি উদাহরণ হিসাবে তারিখ নিন । এটি ES5 এর একটি নতুন ফাংশন যেখানে ES3 এর বাক্য গঠনটি হবে নতুন তারিখ () .গেটটাইম () । আপনি যদি এস 5-শিম ব্যবহার করেন তবে আপনি ডেট.নউ লিখতে পারেন এবং আপনি যে ব্রাউজারটি চালাচ্ছেন তা ইএস 5 সমর্থন করে তবে এটি কেবল চলবে। যাইহোক, ব্রাউজারটি ES3 ইঞ্জিনটি চলমান থাকলে es5-shim কলটি ডেট.নউ থেকে বিরত করবেএবং পরিবর্তে নতুন তারিখ ()। getTime () ফিরিয়ে দিন । এই বাধাটিকে শিমিং বলে। এস 5-শিমের প্রাসঙ্গিক উত্স কোডটি দেখতে এমন দেখাচ্ছে:
if (!Date.now) {
Date.now = function now() {
return new Date().getTime();
};
}
Polyfill
পলিফিলিং শিমিংয়ের কেবলমাত্র একটি বিশেষ সংস্করণ। পলিফিল একটি এপিআই-তে হারিয়ে যাওয়া বৈশিষ্ট্যগুলি বাস্তবায়নের বিষয়ে, যেখানে কোনও শিম অদৃশ্য বৈশিষ্ট্যগুলি সংশোধন করার বিষয়ে অনুপস্থিত বৈশিষ্ট্যগুলি বাস্তবায়নের বিষয়ে ততটা হবে না। আমি জানি এটি অত্যধিক অস্পষ্ট বলে মনে হয় তবে শিমগুলি যেখানে আরও বিস্তৃত শব্দ হিসাবে ব্যবহৃত হয়, সেখানে পলিফিল শিমগুলি বর্ণনা করতে ব্যবহৃত হয় যা পুরানো ব্রাউজারগুলির জন্য পশ্চাদপদ সামর্থ্য সরবরাহ করে। তাই শিমগুলি পুরানো পাপগুলি coveringাকতে ব্যবহার করা হয়, তবে পলিফিলগুলি ভবিষ্যতে উন্নতিকে সময়মতো ফিরিয়ে আনতে ব্যবহৃত হয়।
উদাহরণস্বরূপ আই 7-তে সেশনস্টোরেশনের জন্য কোনও সমর্থন নেই, তবে উইন্ডোটির নাম সম্পত্তিতে ডেটা সংরক্ষণ করার মতো কৌশলগুলি ব্যবহার করে বা কুকিজ ব্যবহার করে সেশন স্টোরেজ এনপিএম প্যাকেজটিতে পলিফিল আইই 7 (এবং আরও পুরানো) এ এই বৈশিষ্ট্যটি যুক্ত করবে।