স্মার্ট লোড হচ্ছে: আধুনিক ওয়েব ডিজাইনে SVG বনাম রাস্টার লোডার | css-ট্রিকস

স্মার্ট লোড হচ্ছে: আধুনিক ওয়েব ডিজাইনে SVG বনাম রাস্টার লোডার | css-ট্রিকস


আমি এসভিজি কর্মশালায় এই আকর্ষণীয় প্রশ্নটি পেয়েছি: “একটি SVG লোডার এবং লোডারের জন্য একটি চিত্র ঘোরানোর মধ্যে পারফরম্যান্সের মধ্যে পার্থক্য কী?”

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

বিন্যাস বোঝা

SVG হয় ভেক্টর-ভিত্তিক গ্রাফিক্স, এর মাপযোগ্যতা এবং স্বচ্ছতার জন্য জনপ্রিয়। কিন্তু রাস্টার ইমেজ এবং ভেক্টর গ্রাফিক্স আসলে কি তা সংজ্ঞায়িত করে শুরু করা যাক।

রাস্টার ছবিগুলি ফিজিক্যাল পিক্সেলের উপর ভিত্তি করে। এগুলিতে প্রতিটি পিক্সেলের জন্য স্পষ্ট রঙের তথ্য রয়েছে। যা ঘটে তা হল আপনি সম্পূর্ণ পিক্সেল-বাই-পিক্সেল তথ্য পাঠান এবং ব্রাউজার প্রতিটি পিক্সেলকে একে একে পেইন্ট করে, যা নেটওয়ার্কটিকে আরও কঠিন করে তোলে।

এর অর্থ:

  • তারা একটি আছে স্থির রেজোলিউশন (স্কেলিং ঝাপসা হতে পারে),
  • ব্রাউজার থাকতে হবে প্রতিটি ফ্রেম ডিকোড এবং আঁকাএবং
  • সাধারণত অ্যানিমেশন মানে ফ্রেম-বাই-ফ্রেম প্লেব্যাকএকটি GIF বা ভিডিও লুপের মত।

ভেক্টর হল গাণিতিক নির্দেশ যেটি বলে কিভাবে কম্পিউটার গ্রাফিক্স তৈরি করতে হয়। যেমন ক্রিস কোয়ার এই সিএসএস কনফেসে বলেছেন: “আপনি যখন গণিত পাঠাতে পারেন তখন কেন পিক্সেল পাঠান?” সুতরাং, সমস্ত তথ্য সহ পিক্সেল পাঠানোর পরিবর্তে, SVG কীভাবে জিনিসটি আঁকতে হয় তার জন্য নির্দেশাবলী পাঠায়। অন্য কথায়, ব্রাউজারকে বেশি কাজ করতে দিন এবং নেটওয়ার্ক কম কাজ করে।

এই কারণে, SVG:

  • গুণমান হারানো ছাড়া সীমাহীন স্কেল,
  • সিএসএস এবং জাভাস্ক্রিপ্টের সাথে স্টাইল এবং ম্যানিপুলেট করা যেতে পারে, এবং
  • অতিরিক্ত HTTP অনুরোধ বাদ দিয়ে সরাসরি DOM-এ থাকতে পারে।
স্মার্ট লোড হচ্ছে: আধুনিক ওয়েব ডিজাইনে SVG বনাম রাস্টার লোডার | css-ট্রিকস

ভেক্টরের শক্তি: কেন SVG জিতেছে

রাস্টার ইমেজের পরিবর্তে SVG ব্যবহার করার জন্য এটি একটি ভাল ধারণা কেন বিভিন্ন কারণ রয়েছে।

1. স্বচ্ছতা এবং চাক্ষুষ গুণমান

বেশিরভাগ আধুনিক চিত্র বিন্যাস স্বচ্ছতা সমর্থন করে, কিন্তু সমস্ত স্বচ্ছতা একই নয়। উদাহরণস্বরূপ, GIF শুধুমাত্র বাইনারি স্বচ্ছতা সমর্থন করে, যার অর্থ পিক্সেল হয় সম্পূর্ণ স্বচ্ছ বা সম্পূর্ণ অস্বচ্ছ।

এর ফলে প্রায়শই স্কেলে জ্যাগড প্রান্ত দেখা যায়, বিশেষ করে বক্ররেখার চারপাশে বা অস্বচ্ছ বা স্বচ্ছ পটভূমিতে। SVG গুলি সত্যিকারের স্বচ্ছতা এবং মসৃণ প্রান্তগুলিকে সমর্থন করে, যা জটিল UI স্তরগুলির উপরে বসে থাকা লোডারদের জন্য একটি লক্ষণীয় পার্থক্য করে।

jpg জিআইএফ পিএনজি এসভিজি
ভেক্টর
রাস্টার
স্বচ্ছতা
অ্যানিমেশন
চাপ ক্ষতিকর ত্রুটিহীন ত্রুটিহীন ত্রুটিহীন

2. “জিরো রিকোয়েস্ট” পারফরম্যান্স

একটি কাঁচা কর্মক্ষমতা দৃষ্টিকোণ থেকে, CSS-এ একটি ছোট PNG এবং একটি SVG ঘোরানো (বা সেই বিষয়ে জাভাস্ক্রিপ্ট) একই। যাইহোক, SVGs অনুশীলনে জয়ী হয় কারণ তারা gzip-বন্ধুত্বপূর্ণ এবং ইনলাইনে এম্বেড করা যেতে পারে.



  Heart
  



কঠিন কালো হৃদয়

আপনার HTML এ সরাসরি SVG কোড পেস্ট করে, আপনি সম্পূর্ণ HTTP অনুরোধটি মুছে ফেলবেন। একটি লোডারের মতো কিছুর জন্য – অন্যান্য জিনিস লোড হওয়ার সময় দৃশ্যমান হওয়া উচিত – সত্য যে SVG কোড ইতিমধ্যেই সেখানে রয়েছে এবং অবিলম্বে রেন্ডার করে তা পারফরম্যান্সের জন্য একটি বিশাল জয়৷

আরও গুরুত্বপূর্ণ, লোডার প্রভাবিত করে অনুভূত কর্মক্ষমতা. একটি লোডার যা সহজে এর প্রসঙ্গ এবং স্কেল সঠিকভাবে অপ্টিমাইজ করে অপেক্ষার সময়গুলিকে ছোট করে তুলতে পারে, এমনকি প্রকৃত লোডের সময় একই হলেও।

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

এই সব বলা হচ্ছে, এটি এখনও SVG আমদানি করা সম্ভব ঠিক একটি রাস্টার ফাইলের মতো (কিছু অন্যান্য পদ্ধতির সাথেও):

কঠিন কালো হৃদয়

এবং হ্যাঁ, এটি একটি নেটওয়ার্ক অনুরোধ হিসাবে গণনা করা হয়, যদিও এটি ফাইলের ভেক্টর-নেসকে সম্মান করে যখন এটি যেকোনো স্কেলে খাস্তা প্রান্তের ক্ষেত্রে আসে। এটি, এবং এটি পরেরটির মতো অন্যান্য সুবিধাগুলিকে সরিয়ে দেয়।

3. অ্যানিমেশন, নিয়ন্ত্রণ এবং ইন্টারঅ্যাক্টিভিটি

SVG-তে ফর্ম্যাট লোডারগুলি DOM-ভিত্তিক, ফ্রেম-ভিত্তিক নয়। এর মানে আপনি পারেন:

আপনি CSS, JavaScript বা SMIL-এর মাধ্যমে আপনার SVG-কে ম্যানিপুলেট করতে পারেন, যখন রাস্টার চিত্রগুলি মেলে না এমন ইন্টারঅ্যাক্টিভিটির ক্ষেত্রে সম্ভাবনার পুরো বিশ্ব তৈরি করে৷

4. কিন্তু অ্যানিমেটেড SVG-এর জন্য আমার কি আলাদা ফাইল দরকার?

আবার, এসভিজি অ্যানিমেশন এইচটিএমএল বা এর ভিতরে ইনলাইন থাকতে পারে .svg ফাইল এর মানে আপনি একটি অ্যানিমেটেড ফাইল পাঠাতে পারেন, যেমন একটি GIF, কিন্তু অনেক বেশি নিয়ন্ত্রণ সহ। ব্যবহার করে এবং আপনি কোড পরিষ্কার রাখতে পারেন. এখানে একটি SMIL লোডার ফাইলের একটি উদাহরণ:


  Loading...
  
    
  
  
    
  
  
    
  

আরও জটিল মিথস্ক্রিয়াগুলির জন্য, আপনি আপনার SVG ফাইলের মধ্যে CSS এবং JavaScript অন্তর্ভুক্ত করতে পারেন:


Interactive Loading Spinner A blue rotating circle. Clicking it toggles the rotation speed between fast and slow.