ওয়েব ব্রাউজ করার সময় আপনি লক্ষ্য করেছেন होंगे যে একই ওয়েবসাইট ভিন্ন ডিভাইসে ভিন্নভাবে দেখায়। হয়তো কিছু ফিচার überhaupt কাজ করে না।
অনেক সময় এটি ওয়েবসাইটের সমস্যা নয়—এটি আপনার ব্রাউজারের সমস্যা। পাঁচটি প্রধান ডেস্কটপ ব্রাউজার চারটি ভিন্ন "রেন্ডারিং ইঞ্জিন" ব্যবহার করে ওয়েব পৃষ্ঠা প্রদর্শন করতে—উইন্ডোজ ১০-এর নতুন মাইক্রোসফ্ট এজ ব্রাউজার একটি পঞ্চম ইঞ্জিন যোগ করবে—এবং প্রতিটি ভিন্নভাবে কাজ করে।
অর্থাৎ, আপনার ওয়েব অভিজ্ঞতা কোন ব্রাউজার ব্যবহার করছেন এবং তার কোন সংস্করণ ব্যবহার করছেন তার উপর নির্ভর করে পরিবর্তন হতে পারে।
রেন্ডারিং ইঞ্জিন কী?
একটি ওয়েব পৃষ্ঠা কোন একক সত্তা নয় যা ডাউনলোড হয়ে স্ক্রিনে পিক্সেল दर পিক্সেল প্রদর্শিত হয়। বরং এটি মূলত কোডের একটি শৃঙ্খলা—HTML, CSS, জাভাস্ক্রিপ্ট, পিএইচপি এবং অন্যান্য—যে ব্রাউজারকে বলে কী করবে, কোথায় এবং কীভাবে করবে।
প্রতিটি ব্রাউজার একটি রেন্ডারিং ইঞ্জিন ব্যবহার করে, যাকে লেআউট ইঞ্জিনও বলা হয়, কোডের মধ্যে থাকা কন্টেন্ট এবং স্টাইলিং তথ্য নিয়ে সেটিকে সম্পূর্ণ ফরম্যাটযুক্ত রূপে স্ক্রিনে প্রদর্শন করতে।
সমস্যা হলো, সব ব্রাউজারে ব্যবহার করার জন্য একক রেন্ডারিং ইঞ্জিন নেই। এবং প্রতিটি ভাষা একটি বিস্তারিত স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত হলেও, ইঞ্জিনটি সেটির শুধু একটি ব্যাখ্যা দিতে পারে।
বিশেষ করে CSS (স্টাইলিং তথ্য প্রদানকারী কোড) এর ক্ষেত্রে, কোনো ইঞ্জিন সঠিক একই ফলাফল দেয় না। иногда পার্থক্য শুধু কয়েকটি ভুলে যাওয়া পিক্সেলের হতে পারে, কিন্তু অনেক সময় তা রেডিক্যালি ভিন্ন হতে পারে।
কোন ব্রাউজার কোন ইঞ্জিন ব্যবহার করে
সবচেয়ে জনপ্রিয় ব্রাউজারগুলো যেন চারটি প্রধান রেন্ডারিং ইঞ্জিন ব্যবহার করে।
- WebKit: একটি ওপেন সোর্স ইঞ্জিন যা OS X এবং iOS-এ Safari ব্যবহার করে, আরো অনেক মোবাইল ব্রাউজার যেমন নেটিভ অ্যান্ড্রয়েড ব্রাউজার;
- Blink: WebKit-ভিত্তিক একটি ওপেন সোর্স ইঞ্জিন, যা Chrome, Opera, Amazon Silk এবং অ্যান্ড্রয়েডের WebView (অ্যাপের ভিতরে খুলা ব্রাউজার) চালায়;
- Gecko: মজিলা ফাউন্ডেশন দ্বারা উন্নত একটি ওপেন সোর্স ইঞ্জিন, যা Firefox-এ ব্যবহৃত হয়;
- Trident: মাইক্রোসফ্ট দ্বারা উন্নত একটি প্রоприেটারি ইঞ্জিন যা ইন্টারনেট এক্সপ্লোরারে ব্যবহৃত হয়। মাইক্রোসফ্ট এজ ব্রাউজার একটি নতুন সংস্করণ EdgeHTML ব্যবহার করবে।
ওয়েব স্ট্যান্ডার্ডস
বিভিন্ন রেন্ডারিং ইঞ্জিনের মধ্যে ফাঁক ইন্টারনেট এক্সপ্লোরার প্রভাবশালী ব্রাউজার ছিল उस समयের চেয়ে অনেক ছোট।
Acid3-এর মতো টেস্ট দেখায় একটি ব্রাউজার কত সঠিকভাবে একটি পৃষ্ঠা রেন্ডার করে, এবং অধিকাংশ আধুনিক ব্রাউজার উচ্চ স্কোর পায়। কিন্তু স্ট্যান্ডার্ডস মেনে চলা অত্যন্ত জটিল একটি কাজ।
HTML, CSS এবং অন্যান্য স্পেসিফিকেশনগুলো বিস্তৃত। নতুন এলিমেন্ট যোগ হয়; পুরনো, অপ্রচলিত বা আউটডেটেড موارد সরানো হয়। রেন্ডারিং ইঞ্জিনগুলোতে এই পরিবর্তনগুলো প্রতিফলিত হওয়ার জন্য דיर्घ সময় লাগতে পারে।
HTML5 এবং CSS স্পেসিফিকেশনে কিছু এলিমেন্ট এখনও কোনো মেইনস্ট্রিম ব্রাউজার দ্বারা সমর্থিত নয়, কিছু আংশিকভাবে সমর্থিত, আর কিছু কিছু ব্রাউজার সমর্থন করে কিন্তু সবই নয়।
html5test.com ওয়েবসাইট আপনাকে আপনার ব্রাউজার এবং এর নির্দিষ্ট সংস্করণ পরীক্ষা করতে দেয় যে এটি অফিসিয়াল এবং পরীক্ষামূলক HTML5 ফিচারগুলো কতটা ভালো সমর্থন করে। লেখার সময়, ক্রোম প্রধান ব্রাউজারগুলোর মধ্যে সেরা, আর ইন্টারনেট এক্সপ্লোরার (v11) সবচেয়ে নিচে।
যদি একজন ওয়েব ডেভেলপার এমন একটি ফিচার ব্যবহার করে যা একটি ব্রাউজারে সমর্থিত কিন্তু অন্যটিতে নয়, তবে অসমর্থিত ব্রাউজারটিকে হয় একটি কাছাকাছি সমতুল্য ফিচারের জন্য বসতে হবে অথবা সেটি সম্পূর্ণই উপেক্ষা করতে হবে (উদাহরণস্বরূপ, একটি ট্রান্সপারেন্ট বক্স নন-ট্রান্সপারেন্ট হিসেবে রেন্ডার হতে পারে)।
এটি ওয়েব পৃষ্ঠা রেন্ডার করার কাজকে देखने চেয়ে অনেক বেশি জটিল করে তোলে। যেই ব্রাউজার আরও ঘন ঘন আপডেট হয়, সেটি কম আপডেট হওয়া ব্রাউজারের চেয়ে বেশি স্ট্যান্ডার্ডস-কম্প্লায়েন্ট হওয়ার সম্ভাবনা বেশি, যেন ক্রোমের নিয়মিত স্বয়ংক্রিয় আপডেট IE-এর বিরল আপডেটের সাথে তুলনা করা যায়।
এছাড়াও অন্যান্য фак্টরগুলোও কাজ করে।
- ইঞ্জিনে বাগ: রেন্ডারিং ইঞ্জিন একটি সফটওয়্যার, এবং সব সফটওয়্যারের বাগ থাকে। যদিও ক্রিটিক্যাল বাগ দ্রুত খুঁজে বের করে সংশোধন করা হয়, একটি ওয়েব পৃষ্ঠার কোডের নির্দিষ্ট সংমিশ্রণ রেন্ডার হওয়ার সময় অপ্রত্যাশিত ফলাফল দেবে না তা নিশ্চিত করা অসম্ভব।
- ওয়েব পৃষ্ঠায় বাগ: ব্রাউজারগুলো একটি নির্দিষ্ট স্তরের এরর টলারেন্স রাখে, কিন্তু এটি এক ইঞ্জিন থেকে অন্য ইঞ্জিনে ভিন্ন। কোডে ত্রুটি থাকা একটি ওয়েব পৃষ্ঠা একটি ব্রাউজারে নিখুঁত রেন্ডার হতে পারে, কিন্তু অন্যটিতে ভয়ঙ্করভাবে ভাঙতে পারে।
- ফন্ট: টাইপফেস কীভাবে প্রদর্শিত হবে তা ব্রাউজার নয় বরং অপারেটিং সিস্টেম পরিচালনা করে। উইন্ডোজ এবং OS X ফন্ট ভিন্নভাবে রেন্ডার করে, তাই একই ব্রাউজারে একই ফন্ট ভিন্ন প্ল্যাটফর্মে ভিন্ন দেখাতে পারে।
- লিগ্যাসি: ব্রাউজারগুলো প্রায়শই অফিসিয়াল স্পেসিফিকেশনের অংশ হওয়ার আগেই নতুন ফিচারগুলো, বিশেষ করে CSS-এর জন্য, গ্রহণ করে। যদি ফিচারটি অফিসিয়ালভাবে গ্রহণ করার সময় এর বাস্তবায়ন পরিবর্তন হয়, তবে ব্রাউজার ডেভেলপারকে সিদ্ধান্ত নিতে হয় পরিবর্তনটি গ্রহণ করলে পুরানো সংস্করণের জন্য ডিজাইন করা হাজার হাজার ওয়েবসাইটের কম্প্যাটিবিলিটি ভাঙতে পারে কিনা, অথবা নতুন সংস্করণটি সম্পূর্ণ উপেক্ষা করতে হবে।
- প্রоприেটারি ফিচার: কিছু ব্রাউজার প্রоприেটারি টেকনোলজি ব্যবহার করতে পারে যা অন্যথায় উপলব্ধ নয়। এটি সবচেয়ে বিখ্যাতভাবে মাইক্রোসফ্টের ActiveX ফ্রেমওয়ার্কে দেখা গিয়েছিল ইন্টারনেট এক্সপ্লোরারে, যদিও কোম্পানিটি নতুন মাইক্রোসফ্ট এজ ব্রাউজারে এটি ব্যবহার করবে না।
উপসংহার
এতগুলো বিষয় জড়িত থাকায়, ব্রাউজাররা কীভাবে ওয়েব পৃষ্ঠা হ্যান্ডেল করে তার পার্থক্য বজায় থাকলে আশ্চর্য নেই।
পরিস্থিতি উন্নত হচ্ছে, কিন্তু এটি সম্পূর্ণ সমাধান হওয়ার সম্ভাবনা কম। সবাই তাদের পছন্দের ব্রাউজারের সর্বশেষ সংস্করণ চালালে সাহায্য হতো, কিন্তু ছয় বছর পুরনো ইন্টারনেট এক্সপ্লোরার ৮ এখনও ৪.৫% মার্কেট শেয়ার ধরে রেখেছে, যা এখনো অনেক দূরে।
আপনি কোন ব্রাউজার ব্যবহার করেন, এবং কি সেটি আপ টু ডেট রাখেন? আপনার পছন্দের ব্রাউজারে কোনো ওয়েবসাইট কাজ না করার অভিজ্ঞতা কি আছে? কমেন্টে জানান।
ছবির ক্রেডিট: ডিভাইস - জেরেমি কিথ, অসমর্থিত ব্রাউজার - ডানকান হিল