Table of Contents

সিলিটিপি স্ক্রোল হচ্ছে ওয়েব সাইটকে ক্রমাগত নতুন উপাদান লোড করার ক্ষেত্রে ওয়েব সাইটকে ব্যবহার করা একটি জনপ্রিয় কৌশল, যা ব্যবহারকারী এই পাতাকে বন্ধ করে দেবার সময় ব্যবহার করা হয়। এই পদ্ধতিটি যাত্রীরা আরো দীর্ঘ সময় ধরে ব্যস্ত থাকে এবং একটি সামুদ্রিক ব্রাউজিং অভিজ্ঞতা সরবরাহ করে।

কেন মন দিয়ে স্ক্রোল ব্যবহার করবেন?

কমপ্লু স্ক্রোল বেশ কিছু সুবিধা প্রদান করে যা ব্যবহারকারী এ রকম ঘটনা এবং সাইট সাইট পরিচালনার সরাসরি প্রভাব তৈরি করে:

  • [[F] part] PROPL [F] [FLT] - এর প্রয়োজন অনুসারে p[F] পুনরায় লোড এবং ম্যানুয়াল, ব্রাউজ করা, ব্রাউজ করা মসৃণ এবং আরো বেশি করে stw. ব্যবহারকারী বাধাবিহীন বিষয়বস্তু দেখতে পারেন।
  • [[[F] স্বয়ংক্রিয়ভাবে পাওয়া গেছে এমন বিষয়বস্তু আবিষ্কার:[F] নতুন বস্তু লোড করার সময় অতিথিরা হয়তো আরও নতুন নিবন্ধ, জিনিষ অথবা পোস্ট করতে পারে ।
  • [[F] ব্যবহারকারীর বাগ্‌দত্তা ব্যবহারকারী মেট্রিক:[FLT][FLT] প্রতি পৃষ্ঠার সময়, প্রতি পাতায়, প্রতি পাতায় এবং প্রতি পাতায় গভীর গভীরতা বৃদ্ধি পায় কারণ ব্রাউজ প্রক্রিয়াটি সংরক্ষিত রয়েছে ।
  • [[[F] একটি আধুনিক, গতিশীল ব্যবহারকারী অভিজ্ঞতা:[FO] টুইটার, PAnit, PAnt এবং ইন্সটাগ্রাম ব্যবহার করে ওয়েবের মত অসীম পরিমাণের মত একটি এ্যাপস-এর মত অনুভূতি তৈরি করতে।

তবে, প্রতিটি অংশের জন্য অসীম স্ক্রোল উপযুক্ত নয়। যে সাইটগুলোতে ব্যবহারকারীকে দ্রুত নির্দিষ্ট কিছু সামগ্রী খুঁজে পেতে হবে (যেমন, ডিরেক্টরি তালিকা, তালিকা অথবা অনুসন্ধান ফলাফল), শব্দ অথবা “আরও লোড” বাটন দ্বারা পরিচালিত হওয়া থেকে উপকার লাভ করতে পারে। সিদ্ধান্তটি ব্যবহারকারী উদ্দেশ্য ও বিষয়বস্তুর উপর ভিত্তি করে নির্মিত হবে।

স্ক্রোলের মৌলিক কার্যকারিতা

একটি অসীম স্বাক্ষর অন্তর্ভুক্ত করা হল [[FLT:] ঘটনা শোনার সাথে একটি নতুন বিষয়বস্তু যোগ করা এবং এই পাতার নীচে প্রবেশের সময় নতুন বিষয়বস্তু সংযোজন করা। নীচে একটি সাধারণ সংস্করণ তৈরির জন্য একটি ধাপ।

HTML কাঠামো

একটি কনটেন্ট ধারণকারী উপাদান ধারণ করে যার মধ্যে প্রারম্ভিক সামগ্রী সংযুক্ত করা হবে । এখানে সব কিছু সংযুক্ত থাকবে ।

<div id="content">
 <!-- Existing items loaded on page load -->
 <div class="item">Item 1</div>
 <div class="item">Item 2</div>
 <div class="item">Item 3</div>
</div>
<div id="loading-indicator" style="display:none;">Loading more content...</div>

জাভাস্ক্রিপ্ট উদাহরণ

স্ক্রোল- সয়্যাপ করা হলে, ব্যবহারকারীর দ্বারা পৃষ্ঠা নীচে স্ক্রোল করা হয়েছে। ([FFLT) চিহ্ন দ্বারা চিহ্নিত সারির সংখ্যা হ্রাস করা হয়।

const contentDiv = document.getElementById('content');
const loadingIndicator = document.getElementById('loading-indicator');
let isLoading = false; // Prevent duplicate requests

window.addEventListener('scroll', () => {
 const scrollPosition = window.innerHeight + window.scrollY;
 const documentHeight = document.body.offsetHeight;

 if (scrollPosition >= documentHeight - 200 && !isLoading) {
 loadMoreContent();
 }
});

async function loadMoreContent() {
 isLoading = true;
 loadingIndicator.style.display = 'block';

 try {
 // Simulate fetching new content from server
 const newItem = document.createElement('div');
 newItem.className = 'item';
 newItem.textContent = `New item loaded at ${new Date().toLocaleTimeString()}`;
 contentDiv.appendChild(newItem);
 } finally {
 isLoading = false;
 loadingIndicator.style.display = 'none';
 }
}

প্রভাব সৃষ্টি করা

প্রোডাকশনের জন্য একটি অসীম স্বাক্ষর, কর্মক্ষমতা এবং ব্যবহারকারীদের অভিজ্ঞতা অবশ্যই সংশোধন করা উচিত।

স্ক্রোলের ঘটনা উন্মোচন করা

এই স্ক্রোল স্ক্রোলের ফলে দ্রুত গতিতে কাজ করতে পারে, যা কিনা কিনা অসট্রাকা ক্রিয়ার মাধ্যমে প্রকাশ করতে পারে ।

function debounce(func, wait) {
 let timeout;
 return function executedFunction(...args) {
 clearTimeout(timeout);
 timeout = setTimeout(() => func.apply(this, args), wait);
 };
}

window.addEventListener('scroll', debounce(checkScrollPosition, 100));

কোড ডিবাগ ব্যবস্থা ব্যবহার করে

এটি বিষয়বস্তুর নিচে একটা দূতকে আনা হয়েছে এবং সেটাকে একটি স্টূনকলের মধ্যে ফেলে দেওয়া হয়েছে ।

const sentinel = document.createElement('div');
sentinel.id = 'scroll-sentinel';
contentDiv.after(sentinel);

const observer = new IntersectionObserver((entries) => {
 if (entries[0].isIntersecting && !isLoading) {
 loadMoreContent();
 }
});
observer.observe(sentinel);

কিন্তু, এটা স্পষ্ট যে, এই বিষয়টা স্পষ্ট যে, এগুলো আসলে কোনো শব্দ নয় ।

একত্রিত-মূলক প্রদর্শনিংিং

কোন তথ্য নেই, অসীম স্ক্রোল-ব্যাক লোড করার চেষ্টা করা উচিত। সহজ পতাকা অথবা সার্ভার থেকে একটি সার্ভার প্রেরিত বিবরণ প্রাপ্ত করার জন্য [FLTR] ব্যবহার করুন। [FLT]:6:

let hasMoreContent = true;

async function loadMoreContent() {
 if (!hasMoreContent) return;
 // ... fetch data
 if (response.data.length === 0) hasMoreContent = false;
}

AJX এর মাধ্যমে প্রকৃত তথ্য লোড করা হচ্ছে

অসীম স্ক্রোলার রূপান্তর করতে হলে আপনাকে AJX ব্যবহার করে একটি সার্ভার থেকে তথ্য সংগ্রহ করতে হবে। H.J. API হল আধুনিক আদর্শ।

API-র উদাহরণ প্রাপ্ত করুন

এই উদাহরণটি বিবেচনা করে আপনার সার্ভার দ্বারা Shuged JSON তথ্য উল্লেখ করে [FLT]: প্রতি অথবা একটি সংখ্যা পরামিতির মাধ্যমে একটি পরামিতি উল্লেখ করুন।

const contentUrl = '/api/items?page=1';
let currentPage = 1;

async function loadMoreContent() {
 isLoading = true;
 loadingIndicator.style.display = 'block';

 try {
 const response = await fetch(`/api/items?page=${++currentPage}`);
 if (!response.ok) throw new Error('Network error');
 const data = await response.json();

 data.items.forEach(item => {
 const el = document.createElement('div');
 el.className = 'item';
 el.textContent = item.title;
 contentDiv.appendChild(el);
 });

 // If the server indicates no more data, disable loading
 if (data.is_last_page) hasMoreContent = false;
 } catch (error) {
 console.error('Failed to load content:', error);
 } finally {
 isLoading = false;
 loadingIndicator.style.display = 'none';
 }
}

সার্ভার থেকে প্রাপ্ত প্রত্যুত্তর ও ত্রুটির ব্যবস্থাপনা

সর্বদা "ট্টবার" ব্যবস্থাপনার অপশন প্রদর্শিত হবে। যদি স্বয়ংক্রিয়ভাবে বাতিল অথবা প্রাপ্ত ফলাফল উৎপন্ন না হয়, তাহলে একটি পূর্ণ লোডিং লুপ বিচ্ছিন্নকরণ লুপের অংশ প্রদর্শন করা হবে। আরো ভাল অভিজ্ঞতার জন্য, "কিছুকিছু করে আবার চেষ্টা" বাটন চাপুন।

ব্যবহারকারীর অভিজ্ঞতার উন্নতি

ব্যবহারকারীদের অক্ষুণ্ণ রাখার জন্য UX গুরুতর। এখানে বেশ কিছু উন্নতির কথা বিবেচনা করা হল।

লোড করা হচ্ছে

স্পিনার, প্রগতি অথবা কাঠামোর পর্দা ব্যবহার করুন । এই সাইটটির জন্য প্রয়োগ করা হচ্ছে এমন ব্যবহারকারীদের ।

<div id="loading" class="loading-spinner"></div>

স্পিনারের জন্য CSS অ্যানিমেশনগুলি লাইটওয়েট নয়। কাঠামোর জন্য অনুকরণযোগ্য তথ্যের ব্লক নির্মাণ করুন।

সহায়ক প্রযুক্তি

ব্যবহারযোগ্য অসীম স্ক্রোলের আবশ্যক:

  • [[F]FLT] পরিচালনা:FOcent;[[FF] নতুন আইটেম লোড করার সময় উপলব্ধ হলে, তাদেরকে [FO:L][FL] অঞ্চল ব্যবহার করে প্রদর্শন করার ঘোষণা দাও
  • [[[F]] কি-বোর্ড (PROPL]:[FLT] [FLT] - কে- মেইল নিশ্চিত করুন যে ব্যবহারকারীদেরকে কীবোর্ডের মাধ্যমে নতুন লোড করা যাবে (Tab) । স্বয়ংক্রিয় ভাবে ফোকাস চালু করা বিষয়বস্তু (র জন্য) ।
  • [[[[F] অসীম স্ক্রোলের জন্য সুনির্দিষ্ট কিছু উল্লেখ করুন:[F][FLT] [FLT] এর জন্য একটি ফল প্রদান করে ব্যবহারকারীদের জন্য একটি ফল-ব্যাক হিসেবে, যারা স্পষ্ট নিয়ন্ত্রণ পছন্দ করে।
<div id="content" aria-live="polite">...</div>

মোবাইল অপ-সেট

এ ছাড়া, ছোট দৃষ্টিপটভূমির জন্য এবং যোগাযোগ করার জন্য রুমের সীমানাকে সমন্বয় করে ।

উচ্চ পর্যায়ের টেকনক

সামাজিক প্রচার মাধ্যম ফিড বা বড় ক্যাটালগগুলোর মতো উচ্চ-রিত্ত পরিস্থিতির জন্য এই সব বিষয় বিবেচনা করা হয়।

অলস ছবি

নতুন বিষয়বস্তুর মধ্যে প্রায়ই ছবি অন্তর্ভুক্ত থাকে । [[F][FLT] এইগুলো [FLT] ব্যবহার করে [FLT] বা [FLT] [FLT] [FOR:[FO]]] [FR]]][FLT]]]] সূত্রগুলো সংরক্ষণ এবং প্রাথমিক সময়ের উন্নতিসাধন করুন ।

<img src="placeholder.jpg" data-src="real-image.jpg" loading="lazy" alt="..." />

বড় মাপের জন্য ভার্চুয়াল স্ক্রোলিং

আপনার অসীম স্বাক্ষর লক্ষ লক্ষ DOM নোড পরিচালনা করে । সম্ভাব্য কর্মফল কেবল দৃশ্যমান (বা জানালা), মেমরি ব্যবহার, নাটকীয়ভাবে মেমরির ব্যবহার হ্রাস করে । libFOL:LLROPLLL [FO][FOP][F1]] [F1]] [F1]]]] [F1], এর সাথে সুসংগতভাবে, কিন্তু সঠিক মানের জন্য একটি সাধারণ প্রয়োগের ক্ষেত্রে, সংশোধন সম্ভব হবে ।

প্রি-লোড করার সামগ্রী

এর আগে পর্যন্ত, যন্ত্রগুলোকে সরিয়ে নেওয়ার জন্য একটা গোপন পাত্রের সামনের ব্যাচ প্রস্তুত করা হয়েছিল ।

অন্তর্ভুক্ত

JavaScript-এর অসীম স্বাক্ষর, উল্লেখযোগ্যভাবে উন্নত ব্যবহারকারী দ্বারা পরিচালিত এক চমৎকার, দীর্ঘ সময়ের অভিজ্ঞতা প্রদান করা, ক্রমাগত তাজা ব্রাউজিং-এর মাধ্যমে যুক্ত করা ।