JavaScript History অবজেক্ট

JavaScript History অবজেক্ট – সম্পূর্ণ বাংলা টিউটোরিয়াল

JavaScript History অবজেক্ট হলো ব্রাউজারের ইতিহাস (history) নিয়ন্ত্রণের জন্য ব্যবহৃত একটি বিল্ট-ইন অবজেক্ট। এটি window.history দ্বারা অ্যাক্সেস করা যায়। এর মাধ্যমে আমরা ব্রাউজারের ব্যাক, ফরোয়ার্ড, ও নির্দিষ্ট পয়েন্টে যাওয়ার কাজ করতে পারি।

History অবজেক্ট ওয়েবসাইটে ইউজারকে নেভিগেশন নিয়ন্ত্রণ করার জন্য অত্যন্ত প্রয়োজনীয়। এটি দিয়ে আমরা পেজের নেভিগেশন কন্ট্রোল করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারি।

History অবজেক্টের প্রধান মেথড ও প্রপার্টি

মেথড / প্রপার্টি বর্ণনা উদাহরণ
length ইতিহাসের মোট এন্ট্রির সংখ্যা window.history.length
back() এক স্টেপ পিছনে যায় (ব্যাক বাটন সমান) window.history.back()
forward() এক স্টেপ সামনে যায় (ফরোয়ার্ড বাটন সমান) window.history.forward()
go(number) নির্দিষ্ট সংখ্যক স্টেপ পেছনে বা সামনে যায় (নেগেটিভ মান হলে পেছনে, পজিটিভ মান হলে সামনে) window.history.go(-2)
pushState(state, title, url) নতুন এন্ট্রি যোগ করে ব্রাউজারের URL পরিবর্তন করে (পেজ reload হয় না) window.history.pushState({}, '', '/newpage')
replaceState(state, title, url) বর্তমান এন্ট্রি পরিবর্তন করে URL পরিবর্তন করে (পেজ reload হয় না) window.history.replaceState({}, '', '/anotherpage')

History অবজেক্টের ব্যবহার উদাহরণ

কোড:

<button onclick="goBack()">পেছনে যান</button>
<button onclick="goForward()">সামনে যান</button>
<button onclick="goSteps(-2)">2 ধাপ পেছনে</button>
<button onclick="showLength()">ইতিহাসের দৈর্ঘ্য দেখাও</button>
<div id="output" style="margin-top:15px; font-weight:bold; color:#004466;"></div>

<script>
function goBack() {
  window.history.back();
}

function goForward() {
  window.history.forward();
}

function goSteps(steps) {
  window.history.go(steps);
}

function showLength() {
  let len = window.history.length;
  document.getElementById('output').innerText = "ইতিহাসে মোট এন্ট্রি: " + len;
}
</script>

ব্যাখ্যা:

  • back() ফাংশনটি ব্রাউজারের ব্যাক বাটনের মতো কাজ করে।
  • forward() সামনের পেজে নিয়ে যায়।
  • go(number) নির্দিষ্ট সংখ্যক ধাপ পেছনে বা সামনে নিয়ে যেতে পারে।
  • length দিয়ে আমরা ব্রাউজারের ইতিহাসের মোট পেজ এন্ট্রি জানতে পারি।

pushState এবং replaceState ব্যবহার

সিঙ্গল পেজ অ্যাপ্লিকেশন (SPA) তৈরিতে আমরা প্রায়ই URL পরিবর্তন করি কিন্তু পেজ রিফ্রেশ করি না। এর জন্য ব্যবহার হয় pushState() ও replaceState()।

কোড:

<button onclick="changeURLPush()">pushState দিয়ে URL পরিবর্তন</button>
<button onclick="changeURLReplace()">replaceState দিয়ে URL পরিবর্তন</button>
<div id="currentUrl" style="margin-top:15px; font-weight:bold;">বর্তমান URL দেখুন</div>

<script>
function changeURLPush() {
  window.history.pushState({page:1}, "Title 1", "/page1");
  document.getElementById('currentUrl').innerText = "URL এখন: " + window.location.href;
}

function changeURLReplace() {
  window.history.replaceState({page:2}, "Title 2", "/page2");
  document.getElementById('currentUrl').innerText = "URL এখন: " + window.location.href;
}

// পেজ ব্যাক/ফরোয়ার্ড ইভেন্ট শুনতে পারেন
window.onpopstate = function(event) {
  alert("পেজ পরিবর্তন হয়েছে! বর্তমান URL: " + window.location.href);
};
</script>

⚠️ গুরুত্বপূর্ন টিপস

  • history.back() ব্যবহার করলে ব্রাউজারের ব্যাক বাটন কাজ করে।
  • go(number) দিয়ে আপনার ইচ্ছামত ধাপ পিছনে বা সামনে যেতে পারেন।
  • pushState() ও replaceState() ব্যবহার করে আপনি URL পরিবর্তন করতে পারেন রিফ্রেশ ছাড়া।
  • onpopstate ইভেন্ট ব্যবহার করে ব্রাউজারের ব্যাক/ফরোয়ার্ড বোতামের কাজ ট্র্যাক করতে পারেন।
  • pushState() নতুন এন্ট্রি যোগ করে, replaceState() বর্তমান এন্ট্রি বদলে দেয়।

Leave a Reply