شہری اینڈمپ؛ اسٹرکچرل انجینئری؛
بہتر صارف کے لئے جاوا کا استعمال
Table of Contents
انفنٹری کتاب ویب سائٹس پر استعمال ہونے والی ایک مقبول تکنیک ہے جس میں صارف کے صفحے کو مسلسل نئے مواد کو اُجاگر کرنے کے لیے استعمال کیا گیا ہے ۔ یہ رسائی زیادہ دیر تک جاری رہتی ہے اور اس میں مختلف ویب سائٹوں کے ساتھ ساتھ ساتھ بے حد وقتی طور پر کام کرنے کا تجربہ بھی فراہم کرتا ہے ۔
انفلیشن کا استعمال کیوں کریں ؟
انفنٹری طومار کئی فوائد کی پیشکش کرتا ہے جو صارفین کو براہ راست وابستگی اور سائٹ پر کارکردگی پر اثر انداز کرتے ہیں:
- پجی کی ضرورت کو پورا کرتا ہے : صفحہ کو ختم کرنے سے اور دستی کلک ختم کرنے سے، بلڈنگ زیادہ آسان اور زیادہ سے زیادہ متحرک ہو جاتا ہے. صارفین بغیر کسی قسم کے مواد کی تلاش کر سکتے ہیں۔
- [Enstructions onstables:] جب نئے عناصر خودبخود لوڈ ہوتے ہیں تو سیاح اضافی مضامین ، مصنوعات یا پوسٹس دیکھنے کے امکانات زیادہ ہوتے ہیں ۔
- [Imporsser Mitriics: وقت پر صفحہ، صفحات پر اور کتابچے گہرائی میں اکثر اضافہ ہوتا ہے کیونکہ انفلنگ کے قدرتی بہاؤ کو برقرار رکھا جاتا ہے۔
- ایک جدید، فعال صارفی تجربہ کار : ٹویٹر، پر موجود بہت سے مقبول پلیٹ فارمز جیسے کہ ٹویٹر، پی ٹی اور ایم ایل ٹی کے ذریعے بے انتہا فروخت شدہ جالیں بنا کر ویب پر محسوس کیا جاتا ہے۔
تاہم، بے انتہا طومار ہر ضمنی کے لیے مناسب نہیں ہے. سی بیسے جہاں صارفین کو جلد ہی مخصوص چیزیں تلاش کرنے کی ضرورت ہوتی ہے (مثلاً، ڈائریکٹری فہرست یا تلاش کے نتائج)، کلاسیکی پجیو سے استفادہ کرنا ممکن ہے کسی پیادہ یا "دوبارہ زیادہ" بٹن سے استفادہ کرنا چاہیے۔ فیصلے صارف مقصد اور مواد کی ترکیب پر مبنی ہونا چاہیے۔
انتہائی اہم کارکردگی
بنیادی طور پر غیر معمولی طور پر فروخت کرنے والے کسی بنیادی نسخہ کی تعمیر میں تقریب کی سماعت اور نئے مواد کو دوبارہ ترتیب دینا شامل ہے جب صارف صفحہ کے نیچے کی طرف جاتا ہے. ذیل میں ایک مرحلہ وار دائرۃ المعارف ہے جو آسان نسخہ بنانے کے لیے ہے۔
ایچمیل کی جگہ
ایک بنیادی عنصر مرتب کریں جو ابتدائی مواد رکھتا ہے ۔ تمام نئی چیزیں یہاں حل کی جائیں گی ۔
<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>
جاوا کی مثال
طومار کی تقریب کو استعمال کرتے ہوئے ہم یہ سمجھ جاتے ہیں کہ جب صارف نے صفحہ کے نیچے کی جانب کتاب لکھی ہے تو وہ فاصلے ( [ [ ) کو بہت دیر تک بلے باز رکھنے سے روکتا ہے ۔
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);
اس سے طومار سننے والے کو جوڑنے کی ضرورت ختم ہو جاتی ہے اور بنیادی سوراخ پر روشنی پڑتی ہے ۔
دستار بندی فارغ الدنیا نعمتی۔
جب کوئی زیادہ ڈیٹا موجود نہیں تو بے انتہا طومار کو لوڈ کرنے کی کوشش بند کرنی چاہیے۔ سرور کا ایک سادہ سا جھنڈ یا جواب مالے کے ساتھ ساتھ اس پر کنٹرول کر سکتا ہے۔
let hasMoreContent = true;
async function loadMoreContent() {
if (!hasMoreContent) return;
// ... fetch data
if (response.data.length === 0) hasMoreContent = false;
}
اے جے ایکس کے ساتھ حقیقی معلومات لوڈ کریں
بے انتہا طوماروں کی فعالی کے لیے آپ کو ایک سرور سے ڈیٹا کو استعمال کرتے ہوئے AJAX. The FAMEHAMI جدید معیار ہے.
مثال سے واضح کریں
یہ مثال آپ کے سرور کو ایک GA یا صفحہ نمبر پیرامیٹر کے ساتھ پاگی عطیہ کرتا ہے۔
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';
}
}
ہینڈنگ سرور ریسپس اور خطاط ہیں۔
ہمیشہ غلطی کا جال ڈالیں ۔ دوبارہ سے اتصال قائم کریں اور اگر نقصان برداشت کرنے میں ناکام ہوجائے تو بے شمار بھاری چارجوں سے بچیں ۔
صارفی تجربہکار
صارفین کو برقرار رکھنے کے لئے ایکس بہت زیادہ تنقید ہے. یہ کئی بہتری لانے کے لئے ہے.
بدیہی طور پر نقصاندہ
اسپرئیر ، ترقیپذیر بار یا غیرضروری اسکرین استعمال کرنے سے یہ ظاہر ہوتا ہے کہ زیادہ مواد محفوظ ہو رہا ہے ۔
<div id="loading" class="loading-spinner"></div>
اسپنج کے سی ایس انڈیکس ہلکے وزنی ہوتے ہیں ۔
ایک اہم بات
ناقابلِرسائی طومار درکار ہے :
- Focous انتظامیہ: جب نئی چیزیں لوڈ ہوتی ہیں تو انہیں پڑھنے والوں کو کے ذریعے اسکرین پر نشر کرنے کا اعلان کرتے ہیں۔
- کیک بورڈنگ: انفنٹری صارفین کی بورڈنگ (Tab) کے ذریعے نئے پریڈ شدہ مواد کو عبور کر سکتے ہیں۔
- [Alternative to university dublic: ایک "مُرَّت" بٹن فراہم کرتا ہے جو واضح کنٹرول کو ترجیح دینے والے صارفین کے لیے ایک گرِش فراہم کرتا ہے۔
<div id="content" aria-live="polite">...</div>
موبائل وژن
موبائل آلات پر ، طوماروں کی آگ اکثر قابلِاعتماد ہے لیکن اس میں موجود مشاہدین کو چھوٹے چھوٹے راستوں اور انرشیا کو چھونے کیلئے بھی اپنی حدود میں تبدیلی کرنی چاہئے ۔
اعلیٰ تکنیکی
سماجی میڈیا جیسے اعلیٰ قسم کے حالات کے لیے یا بڑے کیٹلاگز، ان فیمینٹوں پر غور کریں۔
لازی ڈسک
نئے مواد میں اکثر تصاویر شامل ہوتی ہیں. لازی ان کو استعمال کرتے ہوئے ٹیگ یا انٹرٹینمنٹ نگر ] تاکہ بینڈیڈتھ کو کم کیا جا سکے اور ابتدائی بار بار بہتر بنایا جا سکے۔
<img src="placeholder.jpg" data-src="real-image.jpg" loading="lazy" alt="..." />
بڑی فہرستوں کے لیے رجوع کریں
اگر آپ کے بے شمار طومار ہزاروں کی تعداد میں کام کریں گے تو کارکردگی گر جائے گی ۔
مواد کو ذمہ دارانہ طور پر لوڈ کرنا
جب صارف کی کتابچے کو باربار دہراتے ہیں تو اُس کے سامنے موجود عناصر کو ایک پوشیدہ برتن میں رکھ کر دیکھنے سے پہلے ہی ظاہر ہوتا ہے کہ وہ اُس کی ضرورت سے پہلے ہی چھپے ہوئے برتن میں ڈال دیتا ہے ۔
کُنَّا
بنیادی طوماروں کو ترقی دینے کے لئے استعمال کِیا جاوا سُن کر ، مسلسل جاریترین تجربہ فراہم کرنے سے صارف کو بڑی حد تک بہتر بنا سکتا ہے ۔