কম ব্যান্ডউইথ ও বেশি লেটেন্সি সম্পর্কে বোঝা

কানেক্টিভিটি খারাপ বা নির্ভরযোগ্য না হলে আপনার অ্যাপ বা সাইট ব্যবহার করার অভিজ্ঞতা কেমন হয় তা বোঝা এবং সেই অনুযায়ী তৈরি করা গুরুত্বপূর্ণ। বিভিন্ন ধরনের টুল আপনাকে সাহায্য করতে পারে।

কম ব্যান্ডউইথ ও বেশি লেটেন্সি সহ পরীক্ষা করুন

ক্রমবর্ধমান সংখ্যক মানুষ মোবাইল ডিভাইসে ওয়েব ব্যবহার করেন। এমনকি বাড়িতেও, অনেকে মোবাইলের জন্য ফিক্সড ব্রডব্যান্ড ব্যবহার করা ছেড়ে দিচ্ছেন।

এই প্রসঙ্গে, কানেক্টিভিটি খারাপ বা নির্ভরযোগ্য না হলে আপনার অ্যাপ বা সাইট ব্যবহার করার অভিজ্ঞতা কেমন হয় তা বোঝা গুরুত্বপূর্ণ। বিভিন্ন ধরনের সফ্টওয়্যার টুল আপনাকে কম ব্যান্ডউইথ এবং বেশি লেটেন্সি এমুলেট এবং সিমুলেট করতে সাহায্য করতে পারে।

নেটওয়ার্ক থ্রটলিং ইমুলেট করুন

কোনও সাইট তৈরি বা আপডেট করার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে বিভিন্ন ধরনের কানেক্টিভিটি পরিস্থিতিতে সাইটটি যেন পর্যাপ্ত পারফর্ম্যান্স দেয়। বেশ কিছু টুল সাহায্য করতে পারে।

ব্রাউজার টুল

Chrome DevTools-এর সাহায্যে আপনি নেটওয়ার্ক প্যানেল থেকে প্রিসেট বা কাস্টম সেটিংস ব্যবহার করে বিভিন্ন আপলোড/ডাউনলোড স্পিড এবং রাউন্ড-ট্রিপ টাইম-এর মাধ্যমে আপনার সাইট পরীক্ষা করতে পারবেন। প্রাথমিক বিষয়গুলি জানতে নেটওয়ার্ক পারফর্ম্যান্স বিশ্লেষণ করা শুরু করুন দেখুন।

Chrome DevTools থ্রটলিং

সিস্টেম টুল

আপনি Xcode-এর জন্য হার্ডওয়্যার IO টুল ইনস্টল করলে, Mac-এ নেটওয়ার্ক লিঙ্ক কন্ডিশনার প্রেফারেন্স প্যানেল উপলভ্য হয়:

Mac Network Link Conditioner কন্ট্রোল প্যানেল

Mac নেটওয়ার্ক লিঙ্ক কন্ডিশনার সেটিংস

Mac নেটওয়ার্ক লিঙ্ক কন্ডিশনার কাস্টম সেটিংস

ডিভাইস এমুলেশন

Android Emulator আপনাকে Android-এ অ্যাপ (ওয়েব ব্রাউজার এবং হাইব্রিড ওয়েব অ্যাপ সহ) চালানোর সময় বিভিন্ন নেটওয়ার্ক পরিস্থিতি সিমুলেট করতে দেয়:

Android Emulator

Android Emulator সেটিংস

iPhone-এর ক্ষেত্রে, নেটওয়ার্ক লিঙ্ক কন্ডিশনার ব্যবহার করে নেটওয়ার্কের খারাপ অবস্থা (উপরে দেখুন) সিমুলেট করা যেতে পারে।

বিভিন্ন লোকেশন ও নেটওয়ার্ক থেকে পরীক্ষা করা

কানেক্টিভিটির পারফর্ম্যান্স সার্ভারের লোকেশন ও নেটওয়ার্কের ধরনের উপর নির্ভর করে।

WebPagetest হল একটি অনলাইন পরিষেবা যা বিভিন্ন নেটওয়ার্ক ও হোস্ট লোকেশন ব্যবহার করে আপনার সাইটের জন্য পারফর্ম্যান্স টেস্টের একটি সেট চালানোর সুবিধা দেয়। যেমন, আপনি ভারতের কোনও সার্ভার থেকে 2G নেটওয়ার্কে অথবা মার্কিন যুক্তরাষ্ট্রের কোনও শহর থেকে কেবেলের মাধ্যমে আপনার সাইট ব্যবহার করে দেখতে পারেন।

WebPagetest সেটিংস

একটি লোকেশন বেছে নিন এবং উন্নত সেটিংস থেকে কানেকশনের ধরন বেছে নিন। এমনকি আপনি স্ক্রিপ্ট (যেমন, কোনও সাইটে লগ-ইন করার জন্য) বা তাদের RESTful API ব্যবহার করে টেস্টিং অটোমেট করতে পারেন। এটি আপনাকে বিল্ড প্রসেস বা পারফর্ম্যান্স লগিংয়ে কানেক্টিভিটি টেস্টিং অন্তর্ভুক্ত করতে সাহায্য করে।

Fiddler, GeoEdge-এর মাধ্যমে গ্লোবাল প্রক্সি করার সুবিধা দেয় এবং এর কাস্টম নিয়ম ব্যবহার করে মডেমের স্পিড সিমুলেট করা যায়:

Fiddler প্রক্সি

খারাপ নেটওয়ার্কে পরীক্ষা করুন

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

Facebook-এর অগমেন্টেড ট্রাফিক কন্ট্রোল (ATC) হল BSD-লাইসেন্সপ্রাপ্ত অ্যাপ্লিকেশন সেট যা ট্রাফিক শেপিং এবং নেটওয়ার্কের খারাপ অবস্থা অনুকরণ করতে ব্যবহার করা যেতে পারে:

Facebook-এর অগমেন্টেড ট্রাফিক কন্ট্রোল

এমনকি Facebook 2G মঙ্গলবার নামে একটি প্রোগ্রাম চালু করেছে যাতে 2G ব্যবহারকারীরা কীভাবে তাদের প্রোডাক্ট ব্যবহার করেন তা বোঝা যায়। মঙ্গলবার, কর্মীরা একটি পপ-আপ পান যা তাদের 2G কানেকশন সিমুলেট করার বিকল্প দেয়।

Charles HTTP/HTTPS প্রক্সি ব্যান্ডউইথ ও লেটেন্সি অ্যাডজাস্ট করতে ব্যবহার করা যেতে পারে। Charles হল বাণিজ্যিক সফ্টওয়্যার, তবে একটি ফ্রি ট্রায়াল উপলভ্য।

Charles প্রক্সি ব্যান্ডউইথ এবং লেটেন্সি সেটিংস

Charles সম্পর্কে আরও তথ্য codewithchris.com থেকে পাওয়া যাবে।

ভরসাযোগ্য নয় এমন কানেক্টিভিটি এবং "লাই-ফাই" ম্যানেজ করা

লাই-ফাই কী?

লাই-ফাই শব্দটি অন্তত ২০০৮ সাল থেকে ব্যবহার করা হচ্ছে (যখন ফোনগুলি এইরকম দেখতে ছিল) এবং এটি এমন কানেক্টিভিটিকে বোঝায় যা আসলে যা মনে হয় তা নয়। আপনার ব্রাউজার এমনভাবে কাজ করে যেন এটি কানেক্ট করা আছে, কিন্তু কোনও কারণে এটি কানেক্ট করা নেই।

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

আরও বেশি সংখ্যক মানুষ মোবাইল ব্যবহার করা শুরু করলে এবং ফিক্সড ব্রডব্যান্ড ব্যবহার করা বন্ধ করে দিলে, লাই-ফাই আরও বড় সমস্যা হয়ে উঠতে পারে। সাম্প্রতিক মার্কিন যুক্তরাষ্ট্রের আদমশুমারির ডেটা থেকে দেখা যায় যে ফিক্সড ব্রডব্যান্ডের ব্যবহার কমেছে। নিচের চার্টে ২০১৩ সালের তুলনায় ২০১৫ সালে বাড়িতে মোবাইল ইন্টারনেট ব্যবহারের তথ্য দেখানো হয়েছে:

মার্কিন যুক্তরাষ্ট্রের জনগণনার ডেটা থেকে পাওয়া চার্ট
যা ফিক্সড ব্রডব্যান্ড থেকে মোবাইলে সরে আসার প্রবণতা দেখায়, বিশেষ করে কম আয়ের পরিবারগুলিতে

মাঝে মাঝে কানেক্টিভিটি চলে যাওয়ার সমস্যা ম্যানেজ করতে টাইমআউট ব্যবহার করুন

অতীতে, XHR ব্যবহার করে হ্যাকি পদ্ধতি ইন্টারমিটেন্ট কানেক্টিভিটি পরীক্ষা করার জন্য ব্যবহার করা হয়েছে, কিন্তু সার্ভিস ওয়ার্কার নেটওয়ার্ক টাইমআউট সেট করার জন্য আরও নির্ভরযোগ্য পদ্ধতি সক্ষম করে। এটি Workbox ব্যবহার করে মাত্র কয়েক লাইনের কোডের মাধ্যমে করা যেতে পারে:

workboxSW.router.registerRoute(
  '/path/to/image',
  workboxSW.strategies.networkFirst({networkTimeoutSeconds: 3}),
);

আপনি Jeff Posnick-এর Chrome Dev Summit টক, Workbox: Flexible PWA Libraries থেকে Workbox সম্পর্কে আরও জানতে পারবেন।

Fetch API-এর জন্য টাইম-আউট কার্যকারিতা ডেভেলপ করা হচ্ছে এবং Streams API কন্টেন্ট ডেলিভারি অপ্টিমাইজ করে এবং মনোলিথিক অনুরোধ এড়িয়ে সাহায্য করবে। জেক আর্চিবল্ড সুপারচার্জিং পৃষ্ঠা লোড-এ লাই-ফাই সমস্যার সমাধান করার ব্যাপারে আরও তথ্য দিয়েছেন।

মতামত