প্রকাশিত: 31 জুলাই, 2025
ক্রোম সফট নেভিগেশন API এর জন্য Chrome 139 থেকে একটি নতুন অরিজিন ট্রায়াল চালু করছে যা আমরা আগে পরীক্ষা করেছিলাম ৷ এই অরিজিন ট্রায়াল সাইটগুলিকে তাদের সাইটে API ব্যবহার করে বাস্তব ব্যবহারকারীদের সাথে API পরীক্ষা করার জন্য এবং Chrome টিমের প্রতিক্রিয়া প্রদান করার অনুমতি দেয়৷
নরম নেভিগেশন কি?
একটি সফ্ট নেভিগেশন হল যখন জাভাস্ক্রিপ্ট একটি নেভিগেশন বাধা দেয় (উদাহরণস্বরূপ, একটি লিঙ্কে ক্লিক করা) এবং একটি নতুন পৃষ্ঠা লোড করার পরিবর্তে বিদ্যমান পৃষ্ঠার বিষয়বস্তু আপডেট করে এবং তারপরে ইউআরএলটি ঠিকানা বারে আপডেট করা হয় (ব্যাক এবং ফরওয়ার্ড নরম নেভিগেশনের অনুমতি দেওয়ার জন্য ইতিহাসের অবস্থা সহ)। ব্যবহারকারীর কাছে, এগুলো প্রচলিত নেভিগেশনের মতোই দেখায় কিন্তু যতদূর ব্রাউজার উদ্বিগ্ন, পৃষ্ঠাটি এখনও আসল পৃষ্ঠা।
কেন সফ্ট নেভিগেশন API প্রয়োজন
Soft Navigations API হল একটি প্রস্তাবিত API যা একক পৃষ্ঠা অ্যাপ্লিকেশন (SPA) সাইটগুলির দ্বারা ব্যবহৃত তথাকথিত "সফ্ট নেভিগেশন" এর হিউরিস্টিক-ভিত্তিক সনাক্তকরণের অনুমতি দেয়। যেহেতু একটি নরম নেভিগেশনের জন্য কোনও প্রকৃত পৃষ্ঠা নেভিগেশন ঘটে না, এর মানে হল যে নির্দিষ্ট কিছু ক্রিয়া যা সাধারণত একটি নেভিগেশনের জন্য ঘটবে জাভাস্ক্রিপ্ট দ্বারা ম্যানুয়ালি পরিচালনা করা প্রয়োজন৷ কিছু অ্যাকশন, যেমন নেভিগেশন হিস্ট্রি ম্যানেজমেন্ট, বর্তমান API-এর মাধ্যমে সম্ভব। যাইহোক, অন্যান্য ক্রিয়াকলাপ, যেমন কোর ওয়েব ভাইটাল পরিমাপ করা , এই নেভিগেশনগুলির জন্য সম্ভব নয়।
সফ্ট নেভিগেশন API নরম নেভিগেশন পর্যবেক্ষণের অনুমতি দেয়। যখন জাভাস্ক্রিপ্ট নরম নেভিগেশন শুরু করে (সাধারণত একটি জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক) কখন একটি নেভিগেশন ঘটে সে সম্পর্কে সচেতন, অন্য জাভাস্ক্রিপ্ট এবং ব্রাউজার নিজেই সচেতন হবে না।
কোর ওয়েব ভাইটাল এবং SPA
সফ্ট নেভিগেশন API-এর অন্যতম প্রধান চালক হল SPA-এর জন্য কোর ওয়েব ভাইটাল পরিমাপের অনুমতি দেওয়া। কোর ওয়েব ভাইটালগুলি উভয় ব্রাউজার দ্বারা পরিমাপ করা হয় ( ক্রোম ব্যবহারকারীর অভিজ্ঞতার প্রতিবেদনের মতো টুলিং-এ প্রকাশ করা), এবং রিয়েল ইউজার মনিটরিং (RUM) জাভাস্ক্রিপ্ট লাইব্রেরি দ্বারা।
জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক কোর ওয়েব ভাইটালগুলির কিছু দিক পরিমাপ করতে পারে। বিশেষ করে ইন্টারঅ্যাকশন টু নেক্সট পেইন্ট (INP) , এবং Cumulative Layout Shift (CLS) আদিম (যথাক্রমে ইভেন্ট টাইমিং এপিআই এবং লেআউট ইনস্টেবিলিটি এপিআই ) এর উপর ভিত্তি করে যা INP এবং CLS মেট্রিক্স গণনা করার জন্য যেকোন সময় জুড়ে পরিমাপ করা যেতে পারে। যাইহোক, অন্যান্য মেট্রিক্স যেমন Largest Contentful Paint (LCP) শুধুমাত্র ব্রাউজার দ্বারা নির্গত হয়—পৃষ্ঠা নেভিগেশনের উপর ভিত্তি করে এবং ইন্টারঅ্যাকশনের মাধ্যমে চূড়ান্ত করা হয় ।
কিভাবে সফ্ট নেভিগেশন API SPA-এর জন্য কোর ওয়েব ভাইটাল পরিমাপের অনুমতি দেয়
সফ্ট নেভিগেশন API-এর প্রথম পুনরাবৃত্তি LCP-এর রিসেট করার সাথে সফট নেভিগেশন হিউরিস্টিকসকে সংযুক্ত করেছে। এটি রিসেট করার পরে নতুন কন্টেন্টফুল পেইন্টের জন্য নরম নেভিগেশনের জন্য LCP পুনরায় নির্গত করা যেতে পারে, যাতে নরম নেভিগেশনের জন্য এই মেট্রিকের পরিমাপ করা যায়।
এই সর্বশেষ পুনরাবৃত্তি একটি ভিন্ন পদ্ধতি গ্রহণ করে এবং এই ধারণাগুলিকে সফ্ট নেভিগেশন এপিআই এবং কনটেন্টফুল পেইন্ট পারফরম্যান্স এন্ট্রিতে একটি নতুন ইন্টারঅ্যাকশনের মধ্যে যোগ করে। interaction-contentful-paint
এন্ট্রি ইন্টারঅ্যাকশনের পরে "কন্টেন্টফুল পেইন্ট" পরিমাপ করে। আপাতত, এটি শুধুমাত্র নরম নেভিগেশনের জন্য নির্গত হয়, কিন্তু এটি LCP এর বাইরে অন্যান্য সম্ভাব্য ব্যবহারের ক্ষেত্রে খুলে দেয় যদি সমস্ত ইন্টারঅ্যাকশনের জন্য সক্ষম করা হয়।
এপিআই এন্ট্রিটি যে নেভিগেশনের জন্য একটি শনাক্তকারীকে অন্তর্ভুক্ত করতে largest-contentful-paint
, interaction-contentful-paint
, event-timing
এবং layout-shift
পারফরম্যান্স এন্ট্রিগুলির প্রতিটিকে প্রসারিত করেছে। কর্মক্ষমতা এন্ট্রিগুলি ইভেন্টের পরে নির্গত হয় যা তারা পরিমাপ করছে—সাধারণত নিষ্ক্রিয় সময়ে। এর মানে পারফরম্যান্স এন্ট্রি নির্গত হওয়ার সময় URL প্রায়শই পরিবর্তিত হবে। এন্ট্রি সহ নেভিগেশন সহ প্রদত্ত ইউআরএলের জন্য কোর ওয়েব ভাইটাল পরিমাপ করা অনেক সহজ করে তোলে পারফরম্যান্স এন্ট্রি সময়ের সাথে নরম নেভিগেশন এন্ট্রি সময়ের সাথে মিল না করে।
কেন একটি হিউরিস্টিক?
সফ্ট নেভিগেশন API একটি নরম নেভিগেশন বিবেচনা করে যখন নিম্নলিখিতগুলি ঘটে:
- একটি ব্যবহারকারী-ভিত্তিক মিথস্ক্রিয়া ঘটে (ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়া ইউআরএল আপডেট গণনা করা হয় না)
- … যার ফলে একটি DOM পরিবর্তন এবং একটি পেইন্ট হয়
- … এবং একটি URL আপডেট ঘটে
- একটি ইতিহাস পরিবর্তন সহ URL আপডেট।
এপিআই একটি জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ককে একটি নরম নেভিগেশন "এমিট" করার অনুমতি দেওয়ার পরিবর্তে এই হিউরিস্টিক-ভিত্তিক পদ্ধতি গ্রহণ করে, বা ন্যাভিগেশন API এর উপর তৈরি করা হয় কারণ এটি ফ্রেমওয়ার্ক বা বিকাশকারী কীভাবে এটি ব্যবহার করে তা নির্বিশেষে একটি নরম নেভিগেশন কী গঠন করে তা একটি সামঞ্জস্যপূর্ণ বোঝার অনুমতি দেয়।
ফ্রেমওয়ার্ক বা ডেভেলপাররা ব্যবহারকারীর ইন্টারঅ্যাকশন বা DOM আপডেট ছাড়াই নরম নেভিগেশনের জন্য URL আপডেট করতে পারে যা আমরা বিবেচনা করি যে একজন ব্যবহারকারী নেভিগেশন হিসেবে কী দেখবে। তারা বিভিন্ন সময়ে ইউআরএল আপডেট করতে পারে- ইন্টারঅ্যাকশনের শুরুতে বা শুধুমাত্র শেষ হলেই-বা এর মধ্যে যেকোনো অবস্থায়।
ফ্রেমওয়ার্ক পছন্দের উপর নির্ভর করার পরিবর্তে, ব্রাউজারে সফ্ট নেভিগেশন ডিটেকশন তৈরি করা ক্যানোনিকাল 'হিউরিস্টিকস' (এই অরিজিন ট্রায়াল থেকে আপনার প্রতিক্রিয়া সহ) প্রতিষ্ঠা করে যা আমাদেরকে স্কেলে নরম নেভিগেশনের জন্য কোর ওয়েব ভাইটাল পরিমাপ করতে এবং এই ধরনের পরিমাপগুলিকে স্কেলে তুলনীয় করে তুলতে দেয়।
ফ্রেমওয়ার্ক এবং ডেভেলপাররাও সফ্ট নেভিগেশন API হিউরিস্টিকসকে উপেক্ষা করতে পারে এবং অন্তর্নিহিত ইভেন্ট টাইমিং, লেআউট অস্থিরতা এবং কন্টেন্টফুল পেইন্ট API-এর সাথে ইন্টারঅ্যাকশন ব্যবহার করে অতিরিক্ত কর্মক্ষমতা মেট্রিক্স পরিমাপ করতে পারে, তবে আমরা সাইট জুড়ে পরিমাপের অনুমতি দেওয়ার জন্য হিউরিস্টিক ব্যবহার করে কোর ওয়েব ভাইটালগুলি সুপারিশ করি।
সফ্ট নেভিগেশন API পরীক্ষা করার জন্য সাহায্য প্রয়োজন
সফ্ট নেভিগেশন কখন ঘটেছে তার হিউরিস্টিক আপনার প্রত্যাশার সাথে সঠিকভাবে মেলে কিনা তা পরীক্ষা করার জন্য সফ্ট নেভিগেশন এপিআই পরীক্ষা করার জন্য আমাদের সহায়তা প্রয়োজন। এমন কোন উদাহরণ আছে যখন API নরম নেভিগেশন রিপোর্ট করে না যখন আপনি তাদের ঘটেছে বলে মনে করেন? বিপরীত দিকে, API কি পুনরাবৃত্তি ন্যাভিগেশনগুলির উপরে যা আপনি নরম নেভিগেশন বলে মনে করেন না?
আমরা যে উদাহরণগুলিকে সমস্যা সৃষ্টি করতে দেখেছি তার মধ্যে রয়েছে যখন একটি ইউআরএল একটি ইতিহাস যোগ করার পরিবর্তে replaceState
দিয়ে আপডেট করা হয়, বা যখন একটি নেভিগেশন যা ব্যবহারকারীর দ্বারা শুরু হয়নি (উদাহরণস্বরূপ টাইমআউটের সময় লগআউট)। উভয় ক্ষেত্রেই হিউরিস্টিকসের সাথে মিল না থাকার দ্বারা ব্যাখ্যা করা হয়েছে এবং ক্রোম টিম এগুলি অন্তর্ভুক্ত না করতে স্বাচ্ছন্দ্য বোধ করে তবে আমরা ওয়েব ডেভেলপারদের কাছ থেকে শুনতে চাই যদি তারা সম্মত হয়। এবং আমরা বিশেষ করে এমন ঘটনাগুলি সম্পর্কে শুনতে চাই যখন হিউরিস্টিকগুলি পূরণ হয়েছে বলে মনে হয় কিন্তু API এখনও নরম নেভিগেশনকে চিনতে পারে না।
উপরন্তু, আমরা বুঝতে চাই যে এই API, এবং নতুন ইন্টারঅ্যাকশন টু কনটেন্টফুল পেইন্ট আদিম, SPA-এর জন্য মূল ওয়েব ভাইটালগুলির পরিমাপের অনুমতি দেওয়ার প্রাথমিক ব্যবহারের ক্ষেত্রে সম্বোধন করে।
আমরা চাই যে API যতটা সম্ভব উপযোগী হোক এবং এটি চালু হওয়ার আগে এবং সাইটগুলি একটি বাস্তবায়নের উপর নির্ভর করে শুরু হওয়ার আগে এটি করা অনেক সহজ। অতএব, আমরা এসপিএ ডেভেলপারদের এবং যারা এই সাইটগুলির জন্য ওয়েব পারফরম্যান্স পরিমাপ করতে আগ্রহী তাদের এই APIটি একটি স্পিন করার জন্য এবং আমাদের জানান যে এটি আপনার জন্য কীভাবে কাজ করে।
কিভাবে পরীক্ষা করা যায়
এপিআই স্থানীয়ভাবে Chrome পতাকা বা কমান্ড লাইন বিকল্পগুলির সাথে পরীক্ষা করা যেতে পারে। উপরন্তু এটি উৎপত্তি ট্রায়াল সঙ্গে ক্ষেত্রে পরীক্ষা করা যেতে পারে.
API-এর আরও প্রযুক্তিগত বিবরণের জন্য আমাদের ডকুমেন্টেশন বা GitHub সংগ্রহস্থল দেখুন, এবং বিশেষ করে কোর ওয়েব ভাইটালগুলি কীভাবে পরিমাপ করা যায় । এছাড়াও ওয়েব-ভাইটাল লাইব্রেরির একটি পরীক্ষামূলক নরম নেভিগেশন সংস্করণ উপলব্ধ।
প্রতিক্রিয়া
আমরা সক্রিয়ভাবে নিম্নলিখিত জায়গায় এই পরীক্ষায় প্রতিক্রিয়া চাইছি:
- এপিআই-এর প্রতিক্রিয়া গিটহাবের সমস্যা হিসাবে উত্থাপন করা উচিত।
- ক্রোমিয়াম বাস্তবায়নে বাগগুলি Chrome এর ইস্যু ট্র্যাকারে উত্থাপন করা উচিত, যদি এটি এখনও পরিচিত সমস্যাগুলির মধ্যে একটি না হয়৷
- সাধারণ ওয়েব ভাইটাল ফিডব্যাক web-vitals-feedback@googlegroups.com এ শেয়ার করা যেতে পারে।
সন্দেহ থাকলে খুব বেশি চিন্তা করবেন না, আমরা বরং উভয় জায়গায় প্রতিক্রিয়া শুনতে চাই এবং উভয় স্থানেই সমস্যাগুলিকে সুখের সাথে ট্রাইজ করব এবং সমস্যাগুলিকে সঠিক স্থানে পুনঃনির্দেশ করব৷