ব্যাকগ্রাউন্ড ফেচের অগ্রাধিকার কমানো

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

কীভাবে প্রয়োগ করতে হয়

  1. ব্যাকগ্রাউন্ড অনুরোধ শনাক্ত করা: কোন fetch() কলগুলি অপ্রয়োজনীয় ডেটার জন্য যা ব্যবহারকারীর তাৎক্ষণিক অভিজ্ঞতাকে প্রভাবিত করে না তা নির্ধারণ করুন।
  2. ফেচ প্রায়োরিটি প্রয়োগ করুন: fetch() ইনিশিয়ালাইজেশন অবজেক্টে priority: 'low' বিকল্প যোগ করুন।

কোডের উদাহরণ

// Use high priority (default) for critical UI updates
const criticalData = await fetch('/api/data');

// Explicitly deprioritize background analytics
fetch('/api/analytics', {
  method: 'POST',
  body: JSON.stringify(eventData),
  // Lower the priority to prevent network contention
  priority: 'low'
});

পেশাদার পদ্ধতি

  • অ্যানালিটিক্স, বিকন বা টেলিমেট্রি ডেটার জন্য priority: 'low' ব্যবহার করুন, যা বর্তমান ভিউয়ের জন্য প্রয়োজন নেই।
  • ব্যবহারকারীর পরে প্রয়োজন হতে পারে এমন ডেটা "প্রিফেচ" করার জন্য priority: 'low' ব্যবহার করুন, তবে এটি যেন তার এখন যা প্রয়োজন তা স্লো না করে দেয়।
  • ব্যবহারকারীর অভিজ্ঞতার জন্য গুরুত্বপূর্ণ ফেচের ক্ষেত্রে priority: 'low' ব্যবহার করবেন না।
  • ফেচ বিকল্প অবজেক্টে বন্ধ করে দেওয়া importance কী ব্যবহার করবেন না। সঠিক কী হল priority।

ফলব্যাক স্ট্র্যাটেজি

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