ব্যাকগ্রাউন্ড পরিষেবাগুলি ডিবাগ করুন

কেসি বাস্কস
Kayce Basques
সোফিয়া এমেলিয়ানোভা
Sofia Emelianova

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

ব্যাকগ্রাউন্ড সার্ভিসেস সেকশনটি আপনাকে নিম্নলিখিত ব্যাকগ্রাউন্ড সার্ভিসগুলো ডিবাগ করার সুযোগ দেয়:

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

ব্যাকগ্রাউন্ড সার্ভিস ইভেন্ট ছাড়াও, ডেভটুলস নিম্নলিখিত কাজগুলো করতে পারে:

পটভূমি আনা

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

  1. ব্যাকগ্রাউন্ড ফেচ এপিআই ব্যবহার করে একটি পেজে ডেভটুলস খুলুন
  2. অ্যাপ্লিকেশন > ব্যাকগ্রাউন্ড সার্ভিসেস > ব্যাকগ্রাউন্ড ফেচ- এ যান এবং ক্লিক করুন। রেকর্ড। রেকর্ড

    ব্যাকগ্রাউন্ড ফেচ ট্যাব।

  3. আপনার পেজে ব্যাকগ্রাউন্ডে ডেটা ফেচ করার কার্যক্রম শুরু করুন। ডেভটুলস এই ইভেন্টগুলো টেবিলে লগ করে রাখবে।

    ব্যাকগ্রাউন্ড ফেচ ট্যাবের ইভেন্টগুলোর লগ।

  4. টেবিলের নিচের অংশে কোনো ইভেন্টের বিস্তারিত দেখতে সেটিতে ক্লিক করুন।

  5. আপনি ডেভটুলস বন্ধ করে সর্বোচ্চ তিন দিন পর্যন্ত রেকর্ডিং চালু রাখতে পারেন। রেকর্ডিং বন্ধ করতে ক্লিক করুন। থামুন। থামুন

পটভূমি সিঙ্ক

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

  1. উদাহরণস্বরূপ, এই ডেমো পেজটিতে DevTools খুলুন
  2. অ্যাপ্লিকেশন > ব্যাকগ্রাউন্ড সার্ভিসেস > ব্যাকগ্রাউন্ড সিঙ্ক- এ যান এবং ক্লিক করুন রেকর্ড। রেকর্ড

    ব্যাকগ্রাউন্ড সিঙ্ক ট্যাব।

  3. ডেমো পেজে, সংশ্লিষ্ট সার্ভিস ওয়ার্কারটি রেজিস্টার করতে 'Register background sync'-এ ক্লিক করুন এবং অনুরোধ করা হলে 'Allow'-এ ক্লিক করুন।

    সার্ভিস ওয়ার্কার রেজিস্ট্রেশন একটি ব্যাকগ্রাউন্ড সিঙ্ক কার্যকলাপ। ডেভটুলস ইভেন্টগুলো টেবিলে লগ করে।

    ব্যাকগ্রাউন্ড সিঙ্ক ট্যাবের ঘটনাপ্রবাহের লগ।

  4. টেবিলের নিচের অংশে কোনো ইভেন্টের বিস্তারিত দেখতে সেটিতে ক্লিক করুন।

  5. আপনি ডেভটুলস বন্ধ করে সর্বোচ্চ তিন দিন পর্যন্ত রেকর্ডিং চালু রাখতে পারেন। রেকর্ডিং বন্ধ করতে ক্লিক করুন। থামুন। থামুন

(পরীক্ষামূলক) বাউন্স ট্র্যাকিং প্রশমন

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

ট্র্যাকিং প্রশমন বাধ্যতামূলক করতে:

  1. ক্রোমে থার্ড-পার্টি কুকি ব্লক করুন । এখানে যান এবং সক্রিয় করুন। তিন-বিন্দু মেনু। সেটিংস > নিরাপত্তা। গোপনীয়তা ও নিরাপত্তা > কুকি এবং সাইটের অন্যান্য ডেটা > রেডিও বাটন চেক করা হয়েছে। তৃতীয় পক্ষের কুকি ব্লক করুন
  2. chrome://flags এ, Bounce tracking mitigations experiment-টিকে Enabled With Deletion- এ সেট করুন।
  3. DevTools খুলুন এবং Application > Background services > Bounce tracking mitigations- এ যান।
  4. একটি বাউন্স লিঙ্কে ক্লিক করুন এবং ক্রোমকে বাউন্সটি রেকর্ড করার জন্য ১০ সেকেন্ড অপেক্ষা করুন। ইস্যু ট্যাবটি আপনাকে আসন্ন স্টেট ডিলিট হওয়া সম্পর্কে সতর্ক করবে।
  5. স্টেটটি অবিলম্বে মুছে ফেলতে ফোর্স রান-এ ক্লিক করুন।

বাউন্স ট্র্যাকিং প্রশমন ব্যবস্থা একটি স্টেট ডিলিটেশন তালিকাভুক্ত করে।

বিজ্ঞপ্তি

একটি সার্ভিস ওয়ার্কার সার্ভার থেকে পুশ মেসেজ পাওয়ার পর, ব্যবহারকারীকে ডেটা দেখানোর জন্য নোটিফিকেশনস এপিআই ব্যবহার করে। ডেভটুলস খোলা না থাকলেও তিন দিনের জন্য নোটিফিকেশন লগ করতে:

  1. ওপেন ডেভটুলস
  2. অ্যাপ্লিকেশন > ব্যাকগ্রাউন্ড পরিষেবা > বিজ্ঞপ্তি- তে যান এবং ক্লিক করুন রেকর্ড। রেকর্ড

    নোটিফিকেশন ট্যাব।

  3. শিডিউল নোটিফিকেশন-এ ক্লিক করুন এবং অনুরোধ করা হলে অনুমতি দিন

  4. নোটিফিকেশনটি প্রদর্শিত হওয়ার জন্য অপেক্ষা করুন। ডেভটুলস নোটিফিকেশন ইভেন্টগুলো টেবিলে লগ করে রাখে।

    নোটিফিকেশন ট্যাবে থাকা ঘটনাগুলোর লগ।

  5. টেবিলের নিচের অংশে কোনো ইভেন্টের বিস্তারিত দেখতে সেটিতে ক্লিক করুন।

  6. আপনি ডেভটুলস বন্ধ করে সর্বোচ্চ তিন দিন পর্যন্ত রেকর্ডিং চালু রাখতে পারেন। রেকর্ডিং বন্ধ করতে ক্লিক করুন। থামুন। থামুন

অনুমানমূলক লোড

স্পেকুলেটিভ লোড আপনার সংজ্ঞায়িত স্পেকুলেশন নিয়মের উপর ভিত্তি করে প্রায় তাৎক্ষণিক পেজ লোড করতে দেয়। এটি আপনার ওয়েবসাইটকে সর্বাধিক ব্যবহৃত পেজগুলো প্রিফেচ এবং প্রিরেন্ডার করতে সক্ষম করে।

প্রিফেচ আগে থেকেই কোনো রিসোর্স ফেচ করে রাখে এবং প্রিরেন্ডার আরও এক ধাপ এগিয়ে গিয়ে একটি লুকানো ব্যাকগ্রাউন্ড রেন্ডারার প্রসেসের মাধ্যমে পুরো পেজটি রেন্ডার করে।

আপনি Application > Background services > Speculative loads সেকশনে স্পেকুলেটিভ লোড ডিবাগ করতে পারেন। এই সেকশনটিতে তিনটি ভিউ রয়েছে:

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

এই প্রি-রেন্ডার ডেমো পেজটিতে স্পেকুলেটিভ লোড ডিবাগ করার চেষ্টা করুন:

  1. পেজটিতে DevTools খুলুন এবং Application > Background services > Speculative loads- এ যান। যদি পেজটি দ্বারা শুরু করা কোনো স্পেকুলেটিভ লোড দেখতে না পান, তবে পেজটি রিলোড করুন।

    এই পৃষ্ঠাটি দ্বারা অনুমানমূলকভাবে লোড করা ইউআরএলগুলোর মধ্যে দুটি সফল এবং একটি ব্যর্থ হয়েছে।

  2. ডেমোর শুরুর পৃষ্ঠাটি দুটি পৃষ্ঠা প্রি-রেন্ডার করে এবং একটি প্রি-রেন্ডার করতে ব্যর্থ হয়। 'সমস্ত জল্পনা দেখুন'-এ ক্লিক করুন।

  3. স্পেকুলেশনস- এ, ফেইলর স্ট্যাটাসযুক্ত স্পেকুলেশনটি নির্বাচন করুন, তাহলে নিচের অংশে থাকা ফেইলর কারণ ও বিস্তারিত তথ্য দেখতে পাবেন।

    ব্যর্থ জল্পনাটি নির্বাচিত হয়েছিল।

    এক্ষেত্রে প্রি-রেন্ডার ব্যর্থ হয়েছে, কারণ ওয়েবসাইটে /next3.html নামের কোনো পেজ নেই।

  4. Rules সেকশনটি খুলুন এবং নীচে নিয়ম সেটটি দেখতে Status- এ ক্লিক করুন। Rule set লিঙ্কে ক্লিক করলে আপনাকে Elements প্যানেলে নিয়ে যাওয়া হবে এবং সেখানে দেখানো হবে স্পেকুলেশন নিয়মটি কোথায় সংজ্ঞায়িত করা হয়েছে।

    নিয়মাবলী বিভাগে নিয়মাবলীর সেটের লিঙ্ক রয়েছে।

আরও বিস্তারিত নির্দেশনার জন্য, ‘Debugging speculation rules’ দেখুন।

পুশ মেসেজিং

কোনো ব্যবহারকারীকে পুশ নোটিফিকেশন দেখানোর জন্য, একটি সার্ভিস ওয়ার্কারকে প্রথমে পুশ মেসেজ এপিআই (Push Message API) ব্যবহার করে সার্ভার থেকে ডেটা গ্রহণ করতে হয়। যখন সার্ভিস ওয়ার্কারটি নোটিফিকেশন দেখানোর জন্য প্রস্তুত হয়, তখন এটি নোটিফিকেশনস এপিআই (Notifications API) ব্যবহার করে। ডেভটুলস (DevTools) খোলা না থাকলেও তিন দিনের জন্য পুশ মেসেজ লগ করতে:

  1. উদাহরণস্বরূপ, এই ডেমো পেজটিতে DevTools খুলুন
  2. অ্যাপ্লিকেশন > ব্যাকগ্রাউন্ড পরিষেবা > পুশ মেসেজিং- এ যান এবং ক্লিক করুন রেকর্ড। রেকর্ড

    পুশ মেসেজিং ট্যাব।

  3. ডেমো পেজে, ‘Enable push notifications’ টগল করুন, প্রম্পট করা হলে ‘Allow’-এ ক্লিক করুন, একটি মেসেজ টাইপ করুন এবং সেটি পাঠান। DevTools পুশ নোটিফিকেশন ইভেন্টগুলো টেবিলে লগ করে রাখে।

    পুশ মেসেজিং ট্যাবের ঘটনাপ্রবাহের লগ।

  4. টেবিলের নিচের অংশে কোনো ইভেন্টের বিস্তারিত দেখতে সেটিতে ক্লিক করুন।

  5. আপনি ডেভটুলস বন্ধ করে সর্বোচ্চ তিন দিন পর্যন্ত রেকর্ডিং চালু রাখতে পারেন। রেকর্ডিং বন্ধ করতে ক্লিক করুন। থামুন। থামুন

রিপোর্টিং এপিআই

কিছু ত্রুটি শুধুমাত্র প্রোডাকশনেই ঘটে। আপনি সেগুলো লোকালি বা ডেভেলপমেন্টের সময় কখনোই দেখতে পান না, কারণ প্রকৃত ব্যবহারকারী, নেটওয়ার্ক এবং ডিভাইস পরিস্থিতি পাল্টে দেয়।

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

রিপোর্টিং এপিআই আপনাকে অপ্রচলিত এপিআই কল, আপনার পেজের নিরাপত্তা লঙ্ঘন এবং আরও অনেক কিছু নিরীক্ষণ করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। “রিপোর্টিং এপিআই দিয়ে আপনার ওয়েব অ্যাপ্লিকেশন নিরীক্ষণ করুন” অংশে বর্ণিত পদ্ধতি অনুযায়ী আপনি রিপোর্টিং সেট আপ করতে পারেন।

একটি পৃষ্ঠা দ্বারা তৈরি প্রতিবেদনগুলি দেখতে:

  1. chrome://flags/#enable-experimental-web-platform-features -এ যান, Experimental Web Platform features-কে Enabled- এ সেট করুন এবং Chrome পুনরায় চালু করুন।
  2. DevTools খুলুন এবং Application > Background services > Reporting API- তে যান।

    রিপোর্টিং এপিআই-তে তালিকাভুক্ত রিপোর্টগুলি

রিপোর্টিং এপিআই ট্যাবটি তিনটি অংশে বিভক্ত:

  • রিপোর্ট টেবিলে প্রতিটি রিপোর্ট সম্পর্কে নিম্নলিখিত তথ্য রয়েছে:
    • যে URL-টি রিপোর্ট তৈরি করেছিল
    • লঙ্ঘনের ধরণ
    • রিপোর্টের অবস্থা
    • গন্তব্য প্রান্তবিন্দু
    • টাইমস্ট্যাম্পে তৈরি হয়েছে
    • প্রতিবেদনের মূল অংশ
  • রিপোর্টের মূল অংশের প্রিভিউ সেকশন। কোনো রিপোর্টের মূল অংশ প্রিভিউ করতে, রিপোর্টের টেবিল থেকে একটি রিপোর্টে ক্লিক করুন।
  • এন্ডপয়েন্টস সেকশনে Reporting-Endpoints হেডারে কনফিগার করা সমস্ত এন্ডপয়েন্টের একটি ওভারভিউ রয়েছে।

রিপোর্টের অবস্থা

স্ট্যাটাস কলামটি আপনাকে জানায় যে ক্রোম রিপোর্টটি সফলভাবে পাঠিয়েছে, পাঠাতে চলেছে, নাকি ব্যর্থ হয়েছে।

অবস্থা বর্ণনা
Success ব্রাউজারটি রিপোর্টটি পাঠিয়েছে এবং এন্ডপয়েন্টটি একটি সফলতার কোড ( 200 অথবা অন্য কোনো সফলতার রেসপন্স কোড 2xx ) দিয়ে উত্তর দিয়েছে।
Pending ব্রাউজারটি রিপোর্টটি পাঠানোর চেষ্টা করছে।
Queued রিপোর্টটি তৈরি হয়ে গেছে এবং ব্রাউজারটি এখনও সেটি পাঠানোর চেষ্টা করছে না। নিম্নলিখিত দুটি ক্ষেত্রের একটিতে একটি রিপোর্ট Queued হিসেবে প্রদর্শিত হয়:
  • রিপোর্টটি নতুন এবং এটি পাঠানোর আগে ব্রাউজারটি আরও রিপোর্ট আসার জন্য অপেক্ষা করছে।
  • রিপোর্টটি নতুন নয়; ব্রাউজারটি ইতিমধ্যেই এই রিপোর্টটি পাঠানোর চেষ্টা করে ব্যর্থ হয়েছে এবং পুনরায় চেষ্টা করার আগে অপেক্ষা করছে।
MarkedForRemoval কিছুক্ষণ পুনরায় চেষ্টা করার পর ( Queued ), ব্রাউজারটি রিপোর্টটি পাঠানোর চেষ্টা বন্ধ করে দিয়েছে এবং শীঘ্রই এটিকে প্রেরণের জন্য নির্ধারিত রিপোর্টের তালিকা থেকে সরিয়ে দেবে।

রিপোর্টগুলো সফলভাবে পাঠানো হোক বা না হোক, কিছুক্ষণ পর সেগুলো সরিয়ে ফেলা হয়।

ডিভাইস আবদ্ধ সেশন

ডিভাইস বাউন্ড সেশন ক্রেডেনশিয়ালস (DBSC) হলো একটি ওয়েব এপিআই এবং ইউজার এজেন্ট ও সার্ভারের মধ্যেকার একটি প্রোটোকল, যার লক্ষ্য হলো ইউজার এজেন্টকে একটি নিরাপদে সংরক্ষিত প্রাইভেট কী-এর মালিকানা দাবি করার সুযোগ দিয়ে কুকি চুরি প্রতিরোধ করা।

ডিভাইস-সংযুক্ত সেশন, সেগুলোর সংজ্ঞা এবং ইভেন্টগুলো দেখতে:

  1. DBSC ব্যবহার করে এমন একটি পেজে DevTools খুলুন
  2. অ্যাপ্লিকেশন > ব্যাকগ্রাউন্ড পরিষেবা > ডিভাইস বাউন্ড সেশন- এ যান।
  3. বাম পাশের সাইডবারে, কোনো সাইটের সক্রিয় সেশনগুলো দেখতে সাইটটিকে প্রসারিত করুন। কোনো সেশনের সংজ্ঞা দেখতে সেটিকে নির্বাচন করুন।

    ডিভাইস-সংযুক্ত সেশন ট্যাব।

  4. ইভেন্টস টেবিলটি ডিবিএসসি ইভেন্টগুলো—যেমন: ক্রিয়েশন, রিফ্রেশ, চ্যালেঞ্জ এবং টার্মিনেশন—লগ করে। পেজ নেভিগেশনের পরেও ইভেন্টের তালিকাটি ধরে রাখতে, ‘প্রিজার্ভ লগ’ চেকবক্সটি চেক করুন।

  5. ইভেন্টস টেবিলে, কোনো একটি ইভেন্টের বিস্তারিত বিবরণ দেখতে সেটি নির্বাচন করুন।

  6. যদি কোনো ইভেন্ট ব্যর্থ হয়, তাহলে আপনি 'Result' কলামে Error ' বার্তাটি দেখতে পাবেন। ব্যর্থ হওয়া ইভেন্টটির বিস্তারিত বিবরণ, রেসপন্স এরর কোড এবং ব্যর্থতার কারণ দেখতে সেটিকে নির্বাচন করুন।

    'ডিভাইস বাউন্ড সেশন' ট্যাবে একটি ত্রুটি ইভেন্ট নির্বাচিত রয়েছে।

সাইডবারের ডিভাইস বাউন্ড সেশন সেকশনটি নিম্নলিখিত সমস্যাগুলো তুলে ধরতে পারে:

  • সমাপ্ত সেশন : সাইডবারে একটি স্ট্রাইকথ্রু এবং একটি ডেটাবেস-অফ আইকন দ্বারা নির্দেশিত।
  • ব্যর্থ ইভেন্টসমূহ : একটি সতর্কীকরণ আইকন দিয়ে হাইলাইট করা হয়। ‘নো সেশন’ এলিমেন্টটি সেইসব ব্যর্থ ইভেন্ট ক্যাপচার করে যেগুলো কোনো সাইটের সাথে লিঙ্কযুক্ত ছিল কিন্তু কোনো পরিচিত সেশনের সাথে নয়।