পৃষ্ঠাটি পুনরায় লোড না করে জাভাস্ক্রিপ্টে URL পরিবর্তন করা

পৃষ্ঠাটি পুনরায় লোড না করে জাভাস্ক্রিপ্টে URL পরিবর্তন করা
পৃষ্ঠাটি পুনরায় লোড না করে জাভাস্ক্রিপ্টে URL পরিবর্তন করা

জাভাস্ক্রিপ্টের সাথে গতিশীলভাবে URL পরিবর্তন করা

আধুনিক ওয়েব অ্যাপ্লিকেশানগুলির সাথে কাজ করার সময়, আপনি একটি পৃষ্ঠা পুনরায় লোড ট্রিগার না করেই URL সংশোধন করার প্রয়োজন হতে পারে৷ এটি একটি বিরামহীন ব্যবহারকারীর অভিজ্ঞতা তৈরি করার জন্য বিশেষভাবে কার্যকর হতে পারে।

এই নির্দেশিকায়, আমরা ডোমেনের পরে URL-এর অংশ পরিবর্তন করার পদ্ধতিগুলি অন্বেষণ করব, সেই কৌশলগুলি সহ যা আপনাকে হ্যাশ (#) চিহ্নের আগে অংশটি অ্যাক্সেস করতে দেয়৷ এটি পছন্দসই URL পরিবর্তন করার সময় ক্রস-ডোমেন নীতিগুলির সাথে সম্মতি নিশ্চিত করে৷

আদেশ বর্ণনা
history.pushState() পৃষ্ঠাটি পুনরায় লোড না করেই URL পরিবর্তন করে ব্রাউজারের সেশন ইতিহাস স্ট্যাকে একটি নতুন এন্ট্রি যোগ করে।
window.history.pushState() নতুন রাজ্য ডেটা এবং একটি নতুন URL সহ বর্তমান ইতিহাস এন্ট্রি আপডেট করে৷
window.location.hash URL-এর অ্যাঙ্কর অংশ পায় বা সেট করে, যা হ্যাশ চিহ্ন (#) অনুসরণ করে।
function changeURL(newPath) ইতিহাস API ব্যবহার করে URL পাথ আপডেট করে এমন একটি ফাংশন সংজ্ঞায়িত করে।
function updateHash(newHash) URL হ্যাশ আপডেট করে এমন একটি ফাংশন সংজ্ঞায়িত করে।

জাভাস্ক্রিপ্টে URL পরিবর্তনের বিস্তারিত ব্যাখ্যা

প্রথম স্ক্রিপ্ট ব্যবহার করে history.pushState() পদ্ধতি, যা ইতিহাস API এর অংশ। এই কমান্ডটি বিকাশকারীদের ব্রাউজারের সেশন ইতিহাস স্ট্যাকে একটি নতুন এন্ট্রি যোগ করার অনুমতি দেয়, কার্যকরভাবে পৃষ্ঠাটি পুনরায় লোড না করেই ঠিকানা বারে প্রদর্শিত URL পরিবর্তন করে৷ স্ক্রিপ্টে, const newURL = "/page2.php"; নতুন পথ সেট করে, এবং history.pushState(null, "", newURL); এই নতুন পাথে URL পরিবর্তন করে। মোড়ানো দ্বারা history.pushState যেমন একটি ফাংশনে কমান্ড function changeURL(newPath), আমরা প্রয়োজন অনুসারে ইউআরএলটি গতিশীলভাবে আপডেট করতে পারি। এই কৌশলটি বিশেষ করে একক-পৃষ্ঠার অ্যাপ্লিকেশনের (এসপিএ) জন্য উপযোগী যেখানে সমগ্র পৃষ্ঠা পুনরায় লোড না করেই বিষয়বস্তু গতিশীলভাবে পরিবর্তিত হয়।

দ্বিতীয় স্ক্রিপ্ট ঠিকানা ব্যবহার করে URL হ্যাশ পরিবর্তন window.location.hash. এই প্রপার্টি ইউআরএলের অ্যাঙ্কর অংশ পায় বা সেট করে যা হ্যাশ চিহ্ন (#) অনুসরণ করে। সেট করে const hashValue = "newSection"; এবং window.location.hash = hashValue;, পৃষ্ঠাটি পুনরায় লোড না করেই URL হ্যাশ #newSection-এ পরিবর্তিত হয়। এই পদ্ধতিটি একই পৃষ্ঠার মধ্যে নেভিগেট করার জন্য বা একটি নথির মধ্যে নির্দিষ্ট বিভাগে লিঙ্ক করার জন্য দরকারী। উপরন্তু, ফাংশন function updateHash(newHash) এই কার্যকারিতাকে এনক্যাপসুলেট করে, ইউআরএলের হ্যাশ অংশকে গতিশীলভাবে পরিবর্তন করা সহজ করে তোলে। উভয় স্ক্রিপ্টই URL সংশোধন করার এবং অপ্রয়োজনীয় পৃষ্ঠা পুনরায় লোড এড়িয়ে ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য বিরামহীন উপায় প্রদান করে।

পুনরায় লোড না করে ইউআরএল পরিবর্তন করতে ইতিহাস API ব্যবহার করা

ইতিহাস API সহ জাভাস্ক্রিপ্ট

const newURL = "/page2.php";
history.pushState(null, "", newURL);
// This changes the URL to /page2.php without reloading the page

function changeURL(newPath) {
    window.history.pushState({}, "", newPath);
}
// Example usage
changeURL("/page2.php");

রিলোড না করেই ইউআরএল হ্যাশ ম্যানিপুলেট করা

হ্যাশ পরিবর্তন করার জন্য জাভাস্ক্রিপ্ট

const hashValue = "newSection";
window.location.hash = hashValue;
// This changes the URL hash to #newSection

function updateHash(newHash) {
    window.location.hash = newHash;
}
// Example usage
updateHash("newSection");

পুনরায় লোড না করেই ইউআরএল পরিবর্তন করার জন্য অতিরিক্ত পদ্ধতি অন্বেষণ করা হচ্ছে

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

ব্যবহার করা replaceState(), আপনি অনুরূপ একটি ফাংশন লিখতে পারেন changeURL() কিন্তু পরিবর্তে কল history.replaceState() এটার ভিতরে। এই ক্ষেত্রে, function replaceURL(newPath) ব্যবহার করতে পারে history.replaceState(null, "", newPath); URL আপডেট করতে। এই কৌশলটি অপ্রয়োজনীয় ইতিহাস এন্ট্রি তৈরি না করে ইউআরএলকে অ্যাপ্লিকেশনের অবস্থার সাথে সিঙ্ক করে রেখে ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য মূল্যবান। তদ্ব্যতীত, এটি ব্রাউজারের ইতিহাস পরিচালনা করার জন্য একটি আরও কার্যকর উপায় অফার করে, বিশেষ করে গতিশীল ওয়েব অ্যাপ্লিকেশনগুলিতে।

রিলোড না করে ইউআরএল পরিবর্তন করার বিষয়ে সাধারণ প্রশ্ন

  1. পার্থক্য কি pushState() এবং replaceState()?
  2. pushState() সেশন ইতিহাস স্ট্যাকে একটি নতুন এন্ট্রি যোগ করে, যেখানে replaceState() বর্তমান ইতিহাস এন্ট্রি সংশোধন করে।
  3. আমি কি পৃষ্ঠাটি পুনরায় লোড না করেই URL হ্যাশ পরিবর্তন করতে পারি?
  4. হ্যাঁ, ব্যবহার করে window.location.hash, আপনি পৃষ্ঠাটি পুনরায় লোড না করেই URL হ্যাশ পরিবর্তন করতে পারেন।
  5. URL এর শুধুমাত্র ক্যোয়ারী প্যারামিটার পরিবর্তন করা কি সম্ভব?
  6. হ্যাঁ, আপনি ব্যবহার করে ক্যোয়ারী প্যারামিটার আপডেট করতে পারেন pushState() বা replaceState() পৃষ্ঠাটি পুনরায় লোড না করে পদ্ধতি।
  7. এর সাথে ইউআরএল পরিবর্তন করে pushState() পিছনের বোতাম প্রভাবিত?
  8. হ্যাঁ, প্রতিটি কল pushState() একটি নতুন ইতিহাস এন্ট্রি তৈরি করে, তাই পিছনের বোতামটি এই রাজ্যগুলির মধ্য দিয়ে নেভিগেট করবে।
  9. আমি কি সমস্ত ব্রাউজারে এই পদ্ধতিগুলি ব্যবহার করতে পারি?
  10. বেশিরভাগ আধুনিক ব্রাউজার ইতিহাস API সমর্থন করে, সহ pushState() এবং replaceState(), কিন্তু সর্বদা সামঞ্জস্যের জন্য পরীক্ষা করুন।
  11. ব্যবহার করার সময় আমি কীভাবে পপস্টেট ইভেন্টগুলি পরিচালনা করব pushState()?
  12. আপনি জন্য শুনতে পারেন popstate সক্রিয় ইতিহাস এন্ট্রির পরিবর্তনগুলি পরিচালনা করার জন্য ইভেন্ট এবং সেই অনুযায়ী UI আপডেট করুন।
  13. ইউআরএল ফরম্যাট ব্যবহার করার সময় ভুল হলে কি হবে pushState()?
  14. যদি URL বিন্যাস ভুল হয়, pushState() একটি ত্রুটি নিক্ষেপ করবে, তাই নিশ্চিত করুন যে আপনার ইউআরএল সঠিকভাবে ফরম্যাট করা হয়েছে।

টপিক আপ মোড়ানো

জাভাস্ক্রিপ্টে পৃষ্ঠাটি পুনরায় লোড না করেই ইউআরএল পরিবর্তন করা মসৃণ নেভিগেশন তৈরি করে এবং অপ্রয়োজনীয় পৃষ্ঠা পুনরায় লোড এড়ানোর মাধ্যমে ব্যবহারকারীর অভিজ্ঞতাকে ব্যাপকভাবে উন্নত করতে পারে। ইতিহাস API এর ব্যবহার pushState() এবং replaceState() পদ্ধতিগুলি বিকাশকারীদের ব্রাউজারের ইতিহাস বিশৃঙ্খল না করেই অ্যাপ্লিকেশন অবস্থাকে সিঙ্কে রেখে, গতিশীলভাবে URL আপডেট করতে দেয়৷ উপরন্তু, ইউআরএল হ্যাশ ম্যানিপুলেট করা কার্যকরী ইন-পেজ নেভিগেশন প্রদান করতে পারে। আধুনিক, প্রতিক্রিয়াশীল ওয়েব অ্যাপ্লিকেশনগুলি বিকাশের জন্য এই কৌশলগুলি বোঝা এবং প্রয়োগ করা অপরিহার্য।