কিছু কথা

ওয়েব পারফরম্যান্স আসলে খুব জটিল একটা বিষয়, একটা দুইটা পোস্টে সম্পুর্ণ কভার করা সম্ভব না। আমি নিজেও একেবারে সবকিছু জানি না। সময়ও থাকে না হাতে। .com বিস্ফোরণের পর Web 2.0 'র বিস্ফোরণে সব কিছু আরো অনেক বেশি জটিল হয়ে গিয়েছে। মূলতঃ বাংলা ভাষায় ওয়েব পারফর্মেন্স এর উপরে টেকনিক্যাল গাইডলাইন /রেফারেন্স এর অভাব থাকার কারণেই আমার নতুন এই সিরিজ। সবকিছু বর্তমানে অনেক জটিল, যারা নতুন ওয়েব টেকনোলজি শিখছেন তাদের কনফিউজড হয়ে যাওয়া স্বাভাবিক। পুরাতন যারা আছেন তাঁদের অনেক কনসেপ্টও এখন আউটডেটেড। যতদুর জানি চেষ্টা করব আমার নতুন এই সিরিজে সবকিছু তুলে ধরতে। প্রতিদিনই নতুন নতুন অনেক জিনিস এড হচ্ছে ওয়েব পারফর্মেন্স স্ট্যান্ডার্ডে। চেষ্টা করব নতুন কিছু জানতে পারলে অথবা কোনো কিছু obsolete হয়ে গেলে আপডেট করতে।

ওয়েব পারফরম্যান্স এ কোন জিনিসগুলো গুরুত্বপূর্ণ?

কোনো ওয়েব এপের পারফরম্যান্স এর ক্ষেত্রে ৩ টা জিনিস অত্যন্ত গুরুত্বপুর্ণ।

১. সার্ভারের স্পিড,
২. পেইজের সাইজ,
৩. রিসোর্স অর্ডার, অর্থাৎ যেভাবে রিসোর্স তথা HTML / CSS / JavaScript এইগুলো সজ্জিত থাকে।

Critical Rendering Path রিসোর্স অর্ডারের সাথে সম্পর্কযুক্ত। একটা সাধারণ ওয়েবসাইটের একটা পেইজে বিভিন্ন ধরণের রিসোর্স এর মাঝে গুরুত্বপুর্ণ রিসোর্সগুলো তাড়াতাড়ি লোড করা গেলেই Critical Rendering Path "Clear" করা যায়। সহজভাবে বলছি।

একটা ওয়েব পেইজকে রিসোর্স ফাইলের অথবা কন্টেন্ট টাইপের ভিত্তিতে মোটামোটি ৪ ভাগে ভাগ করে ফেলা যায়।

১. HTML মার্কআপ,
২. HTML এ Inlined CSS এবং CSS files,
৩. HTML এ Inlined JavaScript এবং JavaScript files,
৪. Image/Video files.

Rendering Path এর একটা উদাহরণ

একটি ব্রাউজারকে একটা ওয়েব পেইজ রেন্ডার করতে অর্থাৎ পুরোপুরি লোড করতে বেশ কিছু ধাপের মধ্য দিয়ে যেতে হয়। ধাপগুলো সম্পর্কে স্পষ্ট ধারণা না থাকলেও চলবে, তবে মোটামোটি একটা ধারণা নেওয়া দরকারঃ

১. DNS Lookup: প্রথমেই ব্রাউজারে ইউজার একটা URL (Uniform Resource Locator) প্রদান করে। সাধারণত এইটা একটা ডোমেন নেইম হয়ে থাকে।

DNS নিয়ে বিস্তারিত আলোচনা অন্য একটা পোস্টে করব। আপাততঃ শুধু জেনে রাখেন এইটা একটা ফোনবুকের মতন। আপনি নাম জানালে DNS Server আপনাকে ফোন নাম্বার জানাবে বেসিক কনসেপ্টটা মোটামোটি এইরকম। তো এই ফোন নাম্বার খোঁজার জন্য কিছু সময় লাগে। Domain থেকে IP বের করার প্রক্রিয়াই হল DNS Lookup. যে সময় ব্যয় হয় ডোমেইন থেকে আইপি বের করতে সেটাকে বলা হয় DNS Lookup Time.

DNS Lookup Time মোটামোটি 5 ms থেকে 20 ms এর মধ্যে থাকলে সেটাকে ফাস্ট বলা যায়। DNS Lookup Time আসলে খুব বেশি ইম্পরটেন্ট না ওয়েব এপের পারফ এ। কিন্তু যেহেতু আমরা চাই আমাদের ওয়েব এপের এক্সপেরিয়েন্স কে যতটা সম্ভব স্মুথ আর ফাস্ট করতে, তাই DNS Service যাতে ফাস্ট হয় সেদিকে খেয়াল রাখা জরুরী।

(চলবে)