পুরনো ব্রাউজারগুলিকে সমর্থন করে৷
পুরানো ব্রাউজারগুলিকে সমর্থন করার বিষয়ে আপনাকে আজ খুব বেশি চিন্তা করতে হবে না। ইন্টারনেট এক্সপ্লোরার 8 মারা যাওয়ার পর থেকে তারা শালীন।
কিন্তু প্রশ্ন থেকে যায়:ইন্টারনেট এক্সপ্লোরার 9 এবং অন্যান্য ব্রাউজারগুলিকে সমর্থন করার বিষয়ে আপনার কীভাবে যাওয়া উচিত? প্রথমত, আপনার কি ইন্টারনেট এক্সপ্লোরার 9 সমর্থন করার কথা ভাবতে হবে?
আমরা কয়েকটি বিষয় দেখব যা আপনি বিবেচনা করতে চান।
ফিচারের কথা ভাবুন, ব্রাউজার নয়
ধরা যাক বিশ্বে মাত্র দুটি বৈশিষ্ট্য এবং দুটি ব্রাউজার রয়েছে৷
৷- ব্রাউজার A বৈশিষ্ট্য A সমর্থন করে কিন্তু B বৈশিষ্ট্য নয়।
- ব্রাউজার B বৈশিষ্ট্য B সমর্থন করে কিন্তু A বৈশিষ্ট্য নয়।
কোন ব্রাউজারগুলি কোন বৈশিষ্ট্যগুলিকে সমর্থন করে এবং সেখান থেকে কাজ করে তা সনাক্ত করা সম্ভব৷
৷// This is JavaScript
if (Browser A) { // Code for A}
if (Browser B) { // code for B}
কিন্তু আরো ব্রাউজার থাকলে কি হবে? যদি বিশ্বে C, D, এবং E ব্রাউজার থাকে? আপনি যদি ব্রাউজার সম্পর্কে চিন্তা করেন তবে আপনার প্রয়োজনীয় বৈশিষ্ট্যগুলিকে সমর্থন করা কঠিন হয়ে যায়৷
একটি ভাল উপায় আছে:আপনি একটি বৈশিষ্ট্য বিদ্যমান কিনা তা পরীক্ষা করতে পারেন। যদি এটি বিদ্যমান থাকে তবে এটি ব্যবহার করুন। যদি না হয়, ফলব্যাক কোড প্রদান করুন৷
কোডের নিম্নলিখিত ব্লকটি ব্রাউজার A থেকে ব্রাউজার Z পর্যন্ত কাজ করে।
// This is JavaScript
if (feature A) { // Code if browser contains feature A} else { // Code if browser doesn't contain feature A}
এবং এখন আপনাকে ব্রাউজার নিয়ে চিন্তা করতে হবে না।
একটি বৈশিষ্ট্য ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়া
অনেক লোক এটি সমর্থন করে এমন ব্রাউজারগুলির সংখ্যার উপর নির্ভর করে একটি বৈশিষ্ট্য ব্যবহার করবেন কিনা তা নির্ধারণ করে। কিন্তু, আমি উপরে যুক্তি দিয়েছি, ব্রাউজার কোন ব্যাপার না৷৷
কী গুরুত্বপূর্ণ:আপনি কি সহজেই বৈশিষ্ট্যটির জন্য ফলব্যাক কোড করতে পারেন? যদি আপনি সহজেই ফলব্যাক কোড করতে পারেন, এগিয়ে যান এবং বৈশিষ্ট্যটি ব্যবহার করুন৷৷ আপনি যদি ফলব্যাকটি সহজে কোড করতে না পারেন তবে বৈশিষ্ট্যটি ব্যবহার করবেন না।
কোন ব্রাউজারগুলি সমর্থন করবে তা নির্ধারণ করা
আপনার এখনও একটি কাটঅফ দরকার৷
আপনি কোন ব্রাউজার সমর্থন করতে যাচ্ছেন?
আপনি কোন ব্রাউজার সমর্থন করতে যাচ্ছেন না? আপনি যদি ব্রাউজারটিকে সমর্থন করতে না চান, তাহলে এটির জন্য ফলব্যাক কোড লেখার কোনো মানে হয় না।
আমার সেরা উত্তর হল:দেখুন কে আপনার সাইট ব্যবহার করছে। তারা কি ব্রাউজার ব্যবহার করে? সেই অনুযায়ী অনুসরণ করুন।
হ্যাঁ, এমন কিছু লোক থাকতে পারে যারা ইন্টারনেট এক্সপ্লোরার 6-এ আপনার ওয়েবসাইট দেখার চেষ্টা করে। কিন্তু এমন একটি ব্রাউজারের জন্য অতিরিক্ত কোড লেখার সময় এবং শক্তি আছে যা প্রায় কেউ ব্যবহার করে না?
আপনার শক্তি কি অন্য কোথাও ভালভাবে ব্যয় হবে?
সহায়তার স্তর
আমি যুক্তি দিই যে সমর্থনের চারটি স্তর রয়েছে:
- সমস্ত ব্রাউজারে সবকিছু দেখতে এবং একই কাজ করতে হবে
- সাইটটি দেখতে অবশ্যই একই, তবে কার্যকারিতা ব্রাউজার জুড়ে আলাদা হতে পারে
- কার্যকারিতা অবশ্যই একই হতে হবে, কিন্তু ব্রাউজার জুড়ে চেহারা ভিন্ন হতে পারে
- দেখতে এবং কার্যকারিতা উভয়ই ব্রাউজার জুড়ে আলাদা হতে পারে
আপনি পুরানো ব্রাউজারগুলিকে কি ধরনের সহায়তা প্রদান করছেন? কেন?
র্যাপিং আপ
এটি সম্পর্কে চিন্তা করুন:
- আপনি যে পুরানো ব্রাউজারটিকে সমর্থন করার চেষ্টা করছেন তাকে সমর্থন করার চেষ্টা করছেন কেন?
- আপনি কোন স্তরের সমর্থন দিচ্ছেন?
- আপনার বরাদ্দকৃত সম্পদের মূল্য কি?
পুরোনো ব্রাউজার সমর্থন করে — CSS
CSS বৈশিষ্ট্যগুলির জন্য ফলব্যাক প্রদান করার দুটি উপায় রয়েছে:
- সম্পত্তি ফলব্যাক
- ফিচার কোয়েরি
সম্পত্তি ফলব্যাক
যদি একটি ব্রাউজার একটি সম্পত্তি বা তার সংশ্লিষ্ট মান চিনতে না পারে, তাহলে ব্রাউজার সম্পত্তিটিকে সম্পূর্ণরূপে উপেক্ষা করবে৷
যখন এটি ঘটে, ব্রাউজারটি এটি খুঁজে পাওয়া আগের মানটি ব্যবহার করে — বা পিছিয়ে পড়ে —।
এটি একটি ফলব্যাক প্রদানের সবচেয়ে সহজ উপায়৷
৷এখানে একটি উদাহরণ:
.layout { display: block; display: grid; }
এই উদাহরণে, CSS গ্রিড সমর্থনকারী ব্রাউজারগুলি display: grid ব্যবহার করবে . CSS গ্রিড সমর্থন করে না এমন একটি ব্রাউজার display: block-এ ফিরে যাবে .
ডিফল্ট মান বাদ দিন
যদি আপনি display: block এলিমেন্টটি ডিফল্ট ব্যবহার করেন , আপনি display: block বাদ দিতে পারেন ঘোষণা এর মানে হল আপনি কোডের একটি লাইন দিয়ে CSS গ্রিড সমর্থন করতে পারেন:
.layout { display: grid; }
CSS গ্রিড সমর্থনকারী ব্রাউজারগুলি অন্যান্য CSS বৈশিষ্ট্য যেমন grid-template-columns পড়তে সক্ষম হবে . যে ব্রাউজারগুলি CSS গ্রিড সমর্থন করে না তারা পারে না৷
এর মানে আপনি ফলব্যাক মান সম্পর্কে চিন্তা না করে অতিরিক্ত CSS গ্রিড বৈশিষ্ট্য লিখতে পারেন।
.layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; }
বৈশিষ্ট্য প্রশ্ন, অথবা @supports , আপনাকে বলুন যে একটি CSS প্রপার্টি বা এর সংশ্লিষ্ট মান ব্রাউজার দ্বারা সমর্থিত কিনা।
আপনি if/else এর মত CSS বৈশিষ্ট্যের প্রশ্নগুলির কথা ভাবতে পারেন জাভাস্ক্রিপ্টে বিবৃতি। তারা দেখতে এইরকম:
@supports (property: value) { /* Code when property or value is supported*/}
@supports not (property: value) { /* Code when property or value is not supported */}
@supports আপনি যদি ব্রাউজারগুলিকে শুধু CSS পড়তে চান তাহলে সহায়ক যদি তারা একটি নির্দিষ্ট সম্পত্তি সমর্থন করে।
CSS গ্রিডের উদাহরণের জন্য আমরা উপরে যেটি করেছি, আপনি এটি করতে পারেন:
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
এই উদাহরণে, padding-left এবং padding-right @supports উভয়ই সমর্থন করে এমন ব্রাউজারগুলিই কেবল পঠিত হবে৷ এবং CSS গ্রিড।
জেন সিমন্সের @supports এর একটি ভাল উদাহরণ রয়েছে কর্মক্ষেত্রে ব্রাউজারগুলি -webkit-initial-letter এর মতো একটি সম্পত্তি সমর্থন করে কিনা তা সনাক্ত করতে তিনি বৈশিষ্ট্যের প্রশ্নগুলি ব্যবহার করেন৷ .
@supports (initial-letter: 4) or (-webkit-initial-letter: 4) { p::first-letter { -webkit-initial-letter: 4; initial-letter: 4; color: #FE742F; font-weight: bold; margin-right: 0.5em; }}

জেনের উদাহরণ আমাদের একটি প্রশ্ন নিয়ে আসে:সাইটগুলি কি ব্রাউজার জুড়ে একই রকম হওয়া উচিত? আমরা এটি পরে দেখব। কিন্তু প্রথমে, ফিচার কোয়েরি সম্পর্কে আরও।
ফিচার কোয়েরির জন্য সমর্থন
বৈশিষ্ট্য প্রশ্ন মহান সমর্থন অর্জন করেছে. সমস্ত বর্তমান প্রধান ব্রাউজার বৈশিষ্ট্য প্রশ্নগুলি সমর্থন করে৷
৷

কি হবে যদি একটি বৈশিষ্ট্য সমর্থিত হয়, কিন্তু বৈশিষ্ট্যের প্রশ্নগুলি না হয়?
এই চতুর অংশ হতে ব্যবহৃত. জেন সিমন্স এবং অন্যান্য বিশেষজ্ঞরা আমাদের এই সম্ভাবনা সম্পর্কে সতর্ক করেছেন। আপনি এই নিবন্ধে এটি কিভাবে পরিচালনা করতে পারেন তা পড়তে পারেন।
এখানে আমার মতামত:আমি আর IE 11 সমর্থন করি না, তাই আমি উপরে উল্লিখিত পদ্ধতিতে বৈশিষ্ট্যের প্রশ্নগুলি ব্যবহার করি৷
একই সময়ে সম্পত্তি ফলব্যাক এবং বৈশিষ্ট্য প্রশ্ন ব্যবহার করা
নিম্নলিখিত কোড তাকান. ব্রাউজারগুলি কী প্যাডিং মান প্রয়োগ করবে?
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
.layout { padding-left: 2em; padding-right: 2em; }
উত্তর হল:সমস্ত ব্রাউজার 2em প্রয়োগ করবে বাম এবং ডান প্যাডিং এর।
কেন?
এটি ঘটে কারণ padding-left: 2em এবং padding-right: 2em CSS ফাইলে পরে ঘোষণা করা হয়েছিল। যে বৈশিষ্ট্যগুলি পরে ঘোষণা করা হয়েছিল সেগুলি আগে ঘোষিত বৈশিষ্ট্যগুলিকে ওভাররাইড করে৷
আপনি যদি padding-left: 2em চান এবং padding-right: 2em শুধুমাত্র আবেদন করতে ব্রাউজারগুলিতে যা না CSS গ্রিড সমর্থন করে, আপনি সম্পত্তি অর্ডার অদলবদল করতে পারেন।
.layout { padding-left: 2em; padding-right: 2em; }
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
দ্রষ্টব্য :এটির ক্যাসকেডিং প্রকৃতির কারণে CSS-এ প্রথমে ফলব্যাক কোড ঘোষণা করা সর্বদা একটি ভাল অভ্যাস।
এর মানে, আপনি যদি উভয়ই @supports ব্যবহার করেন এবং @supports not , আপনাকে @supports not ঘোষণা করতে হবে প্রথম এটি আপনার কোডকে সামঞ্জস্যপূর্ণ করে তোলে।
/* Always write "@supports not" first if you use it */@supports not (display: grid) { .layout { padding-left: 2em; padding-right: 2em; }}
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
এখন কথা বলা যাক ব্রাউজার জুড়ে সাইটগুলি একই রকম হওয়া উচিত কিনা৷
৷সাইটগুলি কি ব্রাউজার জুড়ে একই রকম দেখতে হবে?
কিছু লোক বিশ্বাস করে যে সাইটগুলি ব্রাউজার জুড়ে একই রকম হওয়া উচিত। তারা মনে করে যে ব্র্যান্ডিং গুরুত্বপূর্ণ, এবং জোর দেয় যে ব্র্যান্ড সংরক্ষণের জন্য সাইটগুলিকে সামঞ্জস্যপূর্ণ হওয়া উচিত।
অন্য লোকেরা না বলে। তারা বিশ্বাস করে যে তাদের প্রগতিশীল বর্ধনের চেতনা গ্রহণ করা উচিত। তারা ব্যবহারকারীদের আরও ভাল ব্রাউজারদের আরও ভালবাসা দিতে পারে।
উভয় দৃষ্টিভঙ্গি সঠিক, কিন্তু তারা বিভিন্ন কোণ থেকে আসে।
সবচেয়ে গুরুত্বপূর্ণ দৃষ্টিভঙ্গি ব্যবহারকারীদের কাছ থেকে আসে৷৷ আপনার সাইট কি ব্যবহারকারীদের তারা কি জন্য এসেছে তা প্রদান করতে সক্ষম?
যদি হ্যাঁ, আপনাকে ধারাবাহিকতার উপর খুব বেশি কঠোর হতে হবে না। এগিয়ে যান এবং আরও ভাল ব্রাউজার সহ ব্যবহারকারীদের আরও ভাল অভিজ্ঞতা দিন!
র্যাপিং আপ
CSS বৈশিষ্ট্যগুলির জন্য সমর্থন প্রদান করতে, আপনি ব্যবহার করতে পারেন:
- সম্পত্তি ফলব্যাক
- ফিচার কোয়েরি
আপনি যখন CSS লেখেন, নিশ্চিত করুন যে আপনি আরও ভাল সমর্থন সহ ব্রাউজারগুলির জন্য কোডের অন্যান্য সেটের আগে প্রথমে ফলব্যাক কোড ঘোষণা করেছেন৷
পুরোনো ব্রাউজার সমর্থন করে — জাভাস্ক্রিপ্ট
পুরানো ব্রাউজারগুলির জন্য জাভাস্ক্রিপ্ট সমর্থন প্রদান করা সহজ। বেশিরভাগ সময় আপনাকে শুধুমাত্র একটি পলিফিল ব্যবহার করতে হবে।
কিন্তু আপনি করতে পারেন আরো কিছু জিনিস আছে.
পলিফিল কি?
একটি পলিফিল হল কোডের একটি অংশ যা ব্রাউজারকে জাভাস্ক্রিপ্ট বৈশিষ্ট্যটি কীভাবে প্রয়োগ করতে হয় তা জানায়৷ একবার আপনি একটি পলিফিল যোগ করলে, আপনাকে আর সমর্থন সম্পর্কে চিন্তা করতে হবে না। এটা কাজ করবে।
পলিফিল কীভাবে কাজ করে তা এখানে:
- এটি বৈশিষ্ট্যটি সমর্থিত কিনা তা পরীক্ষা করে
- যদি না হয়, এটি বৈশিষ্ট্যটিকে সমর্থন করার জন্য কোড যোগ করে
এখানে কর্মক্ষেত্রে পলিফিলের একটি উদাহরণ। ব্রাউজার Array.prototype.find সমর্থন করে কিনা তা পরীক্ষা করে . যদি ব্রাউজার Array.prototype.find সমর্থন না করে , এটি ব্রাউজারকে বলে কিভাবে এটি সমর্থন করতে হয়৷
আপনি এই কোডটি MDN এ খুঁজে পেতে পারেন৷
৷if (!Array.prototype.find) { Object.defineProperty(Array.prototype, 'find', { value: function(predicate) { // 1. Let O be ? ToObject(this value). if (this == null) { throw new TypeError('"this" is null or not defined'); }
var o = Object(this);
// 2. Let len be ? ToLength(? Get(O, "length")). var len = o.length >>> 0;
// 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); }
// 4. If thisArg was supplied, let T be thisArg; else let T be undefined. var thisArg = arguments[1];
// 5. Let k be 0. var k = 0;
// 6. Repeat, while k < len while (k < len) { // a. Let Pk be ! ToString(k). // b. Let kValue be ? Get(O, Pk). // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). // d. If testResult is true, return kValue. var kValue = o[k]; if (predicate.call(thisArg, kValue, k, o)) { return kValue; } // e. Increase k by 1. k++; }
// 7. Return undefined. return undefined; }, configurable: true, writable: true });}
দ্রষ্টব্য :একটি পলিফিল একটি শিমের একটি উপসেট। একটি শিম হল একটি লাইব্রেরি যা একটি পুরানো পরিবেশে একটি নতুন API নিয়ে আসে৷
৷পলিফিল ব্যবহার করা
পলিফিল ব্যবহার করার দুটি উপায় আছে:
- উপরের উদাহরণের মতো ম্যানুয়ালি পলিফিল করুন
- একটি লাইব্রেরির মাধ্যমে একসাথে অনেকগুলি পলিফিল যোগ করা
ম্যানুয়ালি পলিফিলিং
প্রথমে, আপনাকে পলিফিল অনুসন্ধান করতে হবে আপনার প্রয়োজন আপনি যদি আশেপাশে গুগল করেন তবে আপনি একটি খুঁজে পেতে সক্ষম হবেন। স্মার্ট ডেভেলপাররা আপনার প্রয়োজনীয় প্রায় সবকিছুর জন্য পলিফিল তৈরি করেছে।
একবার আপনি পলিফিল খুঁজে পেলে, উপরের প্রক্রিয়াটি ব্যবহার করুন পুরানো ব্রাউজারগুলিতে সহায়তা প্রদান তৈরি করতে৷
৷একসাথে অনেক পলিফিল যোগ করা হচ্ছে
কিছু লাইব্রেরিতে অনেকগুলি পলিফিল রয়েছে৷৷ ES6-শিম এই ধরনের একটি লাইব্রেরির একটি উদাহরণ। এটি পুরানো ব্রাউজারগুলিতে সমস্ত ES6 বৈশিষ্ট্যগুলির জন্য সমর্থন প্রদান করে৷
৷অত্যাধুনিক জাভাস্ক্রিপ্ট বৈশিষ্ট্য ব্যবহার করা
আপনি যদি অত্যাধুনিক জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলি ব্যবহার করতে চান তবে আপনার বিল্ড প্রক্রিয়াতে ব্যাবেল যুক্ত করার কথা বিবেচনা করুন৷
Babel হল একটি টুল যা জাভাস্ক্রিপ্ট কম্পাইল করে। এই কম্পাইল প্রক্রিয়া চলাকালীন, এটি করতে পারে:
- আপনার প্রয়োজনে যেকোনো শিম/পলিফিল যোগ করুন
- জাভাস্ক্রিপ্টে প্রিপ্রসেসর কম্পাইল করুন
দ্বিতীয় পয়েন্টে আরও:
Babel আপনার বিল্ড প্রক্রিয়ায় অফলাইনে কাজ করে। এটি আপনার পাস করা ফাইলগুলি পড়তে পারে এবং তারপরে এই ফাইলগুলিকে জাভাস্ক্রিপ্টে রূপান্তর করে ব্রাউজার পড়তে পারে৷
এর অর্থ হল আপনি ফ্লো, টাইপস্ক্রিপ্ট এবং অন্যান্য দুর্দান্ত প্রযুক্তির মতো অত্যাধুনিক বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন যা আপনি শুনেছেন৷ এগুলি সব ব্রাউজারে কাজ করবে, যদি আপনি সেগুলিকে প্রথমে Babel এর মাধ্যমে পাস করেন!
৷পলিফিল যথেষ্ট না হলে কী হবে?
যদি পলিফিলগুলি বৈশিষ্ট্যটিকে সমর্থন করার জন্য যথেষ্ট না হয়, তাহলে আপনি প্রশ্নে থাকা ব্রাউজারের জন্য যে পরিমাণ সমর্থন প্রদান করেছেন তা পুনর্বিবেচনা করতে চাইতে পারেন৷
আপনি বিভিন্ন ব্রাউজার জুড়ে একই কার্যকারিতা প্রদান করতে হবে? সম্ভবত আপনার পরিবর্তে প্রগতিশীল বর্ধন বিবেচনা করা উচিত।
সম্ভবত আপনি এমনভাবে কোড করতে পারেন যা বৈশিষ্ট্যটি ব্যবহার করে না?
হয়তো অনেক, কিন্তু আপনি প্রবাহ পেতে.
একটি ব্রাউজার বৈশিষ্ট্য সমর্থন করে কিনা তা কিভাবে বলবেন?
প্রথমে, আমি caniuse.com চেক করি। আপনি যে জাভাস্ক্রিপ্ট বৈশিষ্ট্যটি চান তার নাম লিখুন এবং আপনি ব্রাউজার সমর্থন স্তর দেখতে সক্ষম হবেন৷
এখানে Abort Controller
এর সাথে একটি উদাহরণ দেওয়া হল

যদি caniuse.com আমাকে কোনো তথ্য না দেয়, আমি MDN চেক করি। আপনি বেশিরভাগ নিবন্ধের নীচে ব্রাউজার সমর্থন পাবেন।
এখানে আবার Abort Controller-এর উদাহরণ দেওয়া হল:

জাভাস্ক্রিপ্টের খরচ সম্পর্কে সতর্ক থাকুন
আপনি যখন পলিফিল ব্যবহার করেন তখন আপনি আরও জাভাস্ক্রিপ্ট কোড যোগ করেন।
আরও জাভাস্ক্রিপ্ট যোগ করার সমস্যা হল, ভাল, আরও জাভাস্ক্রিপ্ট আছে। এবং আরও জাভাস্ক্রিপ্টের সাথে আরও সমস্যা আসে:
- পুরনো ব্রাউজারগুলি সাধারণত পুরানো কম্পিউটারে থাকে৷ তাদের যথেষ্ট প্রক্রিয়াকরণ ক্ষমতা নাও থাকতে পারে৷
- জাভাস্ক্রিপ্ট বান্ডেল সাইট লোড বিলম্বিত করতে পারে। আদ্দি ওসমানী র "জাভাস্ক্রিপ্টের খরচ"-এ এই বিষয়ে আরও
র্যাপিং আপ
জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলির জন্য সমর্থন যোগ করা সহজ। বেশিরভাগ সময়, আপনি একটি পলিফিল যোগ করুন এবং এটি একটি দিন কল করুন। কিন্তু জাভাস্ক্রিপ্টের খরচ সম্পর্কে সচেতন থাকুন যখন আপনি তা করবেন!
কখনও কখনও, বৈশিষ্ট্যটি সম্পূর্ণভাবে বাদ দেওয়া ভাল হতে পারে৷
কেন পুরানো ব্রাউজার সমর্থন করে?
কেন আপনি পুরানো ব্রাউজার সম্পর্কে যত্ন নিতে হবে?
কে পুরানো ব্রাউজার ব্যবহার করে? সম্ভবত, পুরানো কম্পিউটার সহ ব্যবহারকারীরা?
যদি তারা পুরানো কম্পিউটার ব্যবহার করে, সম্ভবত তাদের কাছে একটি নতুন কেনার টাকা নেই।
যদি তাদের কাছে একটি নতুন কম্পিউটার কেনার জন্য টাকা না থাকে, তাহলে তারা সম্ভবত আপনার কাছ থেকেও কিছু কিনবে না।
যদি তারা আপনার কাছ থেকে কিছু কিনবে না, তাহলে কেন আপনাকে তাদের ব্রাউজার সমর্থন করার বিষয়ে চিন্তা করতে হবে?
একজন ব্যবসায়ী ব্যক্তির কাছে, এটি চিন্তার একটি পুরোপুরি যুক্তিসঙ্গত ট্রেন। কিন্তু কেন আমরা বিকাশকারীরা এখনও পুরানো ব্রাউজারগুলিকে সমর্থন করার জন্য জোর দিই?
আসুন এটি ভেঙে ফেলা যাক
মূল চিন্তা প্রক্রিয়ায় অনুমানের অনেক স্তর রয়েছে।
"কে পুরানো ব্রাউজার ব্যবহার করে? সম্ভবত, পুরানো কম্পিউটারের ব্যবহারকারীরা? যদি তারা পুরানো কম্পিউটার ব্যবহার করে, সম্ভবত তাদের কাছে একটি নতুন কেনার জন্য টাকা নেই"৷
যদিও এটা সত্য যে লোকেরা পুরানো ব্রাউজার ব্যবহার করে কারণ তারা পুরানো কম্পিউটার ব্যবহার করে, আমরা ধরে নিতে পারি না যে লোকেরা নতুন কেনার সামর্থ্য রাখে না।
- হয়তো তাদের কোম্পানি তাদের একটি কিনতে চায় না।
- হয়তো তারা তাদের কম্পিউটার নিয়ে খুশি, এবং তারা আপগ্রেড করতে চায় না।
- হয়তো তাদের কম্পিউটার আপগ্রেড করার জ্ঞান নেই।
- হয়তো তাদের নতুন কম্পিউটারে অ্যাক্সেস নেই।
- হয়তো তারা এমন মোবাইল ফোনে আবদ্ধ যেগুলোর ভালো ব্রাউজার নেই।
অনুমান করবেন না।
যদি তাদের কাছে একটি নতুন কম্পিউটার কেনার জন্য অর্থ না থাকে তবে তারা সম্ভবত আপনার কাছ থেকেও কিছু কিনবে না। যদি তারা আপনার কাছ থেকে কিছু কিনবে না, তাহলে কেন আপনাকে তাদের ব্রাউজার সমর্থন করার বিষয়ে চিন্তা করতে হবে?
এই বিন্দু সম্পর্কে কথা বলার জন্য আমাদের অন্যান্য এলাকায় জুম আউট করতে হবে।
হুইলচেয়ার অ্যাক্সেসযোগ্যতা
আপনি যদি সিঙ্গাপুরে যান, আপনি লক্ষ্য করবেন প্রায় প্রতিটি সিঁড়ির পাশে একটি র্যাম্প বা একটি লিফট রয়েছে।
কিন্তু কেন? কেন সরকারী এবং বেসরকারী কর্পোরেশনগুলি লিফট এবং র্যাম্পের জন্য অর্থ ব্যয় করে? কেন সেগুলি তৈরি করুন যখন সিঁড়িগুলি লোকেদের নিচু উচ্চতা থেকে উচ্চতায় নিয়ে যাওয়ার জন্য যথেষ্ট?
দেখা যাচ্ছে যে কিছু লোক সিঁড়ি ব্যবহার করতে পারছে না। তারা পায়ে হাঁটতে পারে না। তাদের হুইলচেয়ারে বসতে হবে, এবং তারা সিঁড়ি বেয়ে উঠতে পারে না। লিফট এবং র্যাম্প এই লোকেদের পরিবেশন করে।
এবং দেখা যাচ্ছে যে লিফট এবং র্যাম্প থেকে আরও বেশি লোক উপকৃত হয়।
- যাদের হাঁটু দুর্বল।
- যাদের সাথে সাইকেল বা স্কুটার আছে।
- বাবা-মা যারা একটি শিশুর ট্রলি ঠেলে দিচ্ছেন।
আপনি যদি নিজেকে চাকার সাথে কিছু ঠেলে দেখতে পান, আপনি দুবার চিন্তা না করে র্যাম্প বা লিফট ব্যবহার করবেন। আপনিও উপকৃত হবেন।
কিন্তু সমস্যা হল:কেউ র্যাম্প বা লিফট পরিচালনা করে এক সেন্টও আয় করে না? তাহলে কেন তাদের নির্মাণ?
কারণ এটি মূল্যবান।
এবং মূল্য সবসময় অর্থ নয়।
গ্লোবাল ওয়ার্মিং বিবেচনা করুন
আপনি পৃথিবীতে বাস করেন। গ্লোবাল ওয়ার্মিং সম্পর্কে আপনি কী অনুভব করেন?
কিছু মানুষ পাত্তা দেয় না। বন পুড়ে গেলে ঠিক আছে। কোম্পানিগুলো যদি নদীকে দূষিত করে এবং টন কার্বন ডাই অক্সাইড বাতাসে ছেড়ে দেয় তাহলে ঠিক আছে। এটা তাদের প্রভাবিত করে না।
কিন্তু এমন একদল লোক আছে যারা যত্নশীল। আমরা যে গ্রহে বাস করছি তারা তাকে ভালোবাসে। তারা তাদের সন্তানদের বসবাসের জন্য একটি ভাল জায়গা দিতে চায়৷ তাদের যত্ন নেওয়ার অনেক কারণ রয়েছে৷ এবং তারা সম্ভবত যতটা সম্ভব সম্পদ সংরক্ষণ করতে চায়।
আপনি কোথায় দাঁড়িয়ে?
আপনি কি এমন একটি কোম্পানিকে অর্থ দেবেন যেটি কাজ করার সময় পৃথিবীকে ধ্বংস করে?
হয়তো আপনি হবে. হয়তো তুমি করবে না। হয়তো আপনি যত্ন না. তিনটি বিকল্পই বৈধ।
এবং আবারও, আপনি দেখুন, এটি সর্বদা অর্থের বিষয়ে নয়।
ওয়েব সবার জন্য
ওয়েবের পিছনের স্বপ্ন হল একটি সাধারণ তথ্য স্থান যেখানে আমরা তথ্য ভাগ করে যোগাযোগ করি।
— টিম বার্নার্স-লি
আমরা ফ্রন্টএন্ড ডেভেলপাররা হল ওয়েবের রক্ষক। কিভাবে ওয়েব সক্রিয় আউট আমাদের উপর নির্ভর করে. আমরা সবাইকে র্যাম্প এবং এলিভেটর তৈরি করতে বাধ্য করতে পারি না, তবে আমরা নিশ্চিত করতে পারি যে আমরা সেগুলি নিজেরাই তৈরি করি।
পছন্দটি সত্যিই আপনার উপর নির্ভর করে।
আপনি যদি না চান তবে আপনাকে পাত্তা দিতে হবে না।
আমি জানি সবচেয়ে ভালো ফ্রন্টএন্ড ডেভেলপার? তারা যত্ন করে। তারা অন্তর্ভুক্ত হতে পছন্দ করে. এটা আমাদের ফ্রন্টএন্ড ডেভেলপার করে তোলে।
আমরা যত্ন করি।
কিন্তু কখনও কখনও আমাদেরও সীমাবদ্ধতা এবং সীমাবদ্ধতা থাকে। এবং আমরা সেই সীমাবদ্ধতার সাথে কাজ করি৷
এই নিবন্ধটি মূলত আমার ব্লগে পোস্ট করা হয়েছে.
আমার নিউজলেটারের জন্য সাইন আপ করুন যদি আপনি আরও নিবন্ধ চান যাতে আপনাকে আরও ভাল ফ্রন্ট-এন্ড ডেভেলপার হতে সাহায্য করে।
বিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন