ব্রাউজারের ইউআরএল পরিবর্তন করার জন্য jQuery এর একটি দুর্দান্ত প্লাগইন রয়েছে, এটি jQuery-pusher বলে ।
জাভাস্ক্রিপ্ট pushState
এবং jQuery একসাথে ব্যবহার করা যেতে পারে:
history.pushState(null, null, $(this).attr('href'));
উদাহরণ:
$('a').click(function (event) {
// Prevent default click action
event.preventDefault();
// Detect if pushState is available
if(history.pushState) {
history.pushState(null, null, $(this).attr('href'));
}
return false;
});
কেবল জাভাস্ক্রিপ্ট ব্যবহার করেhistory.pushState()
, যা রেফারারে পরিবর্তন করে , যা আপনার রাষ্ট্র পরিবর্তন করার পরে তৈরি করা XMLHttpRequest অবজেক্টের জন্য HTTP শিরোনামে ব্যবহৃত হয়।
উদাহরণ:
window.history.pushState("object", "Your New Title", "/new-url");
পুশস্টেট () পদ্ধতি:
pushState()
তিনটি পরামিতি লাগে: একটি রাষ্ট্রীয় অবজেক্ট, একটি শিরোনাম (যা বর্তমানে উপেক্ষা করা হয়) এবং (optionচ্ছিকভাবে) ইউআরএল। আসুন এই তিনটি প্যারামিটারগুলির প্রতিটি আরও বিশদে পরীক্ষা করুন:
রাজ্য অবজেক্ট - স্টেট অবজেক্টটি একটি জাভাস্ক্রিপ্ট অবজেক্ট যা দ্বারা নির্মিত নতুন ইতিহাসের প্রবেশের সাথে সম্পর্কিত pushState()
। যখনই ব্যবহারকারী নতুন রাজ্যে নেভিগেট করেন, একটি পপস্টেট ইভেন্ট নিক্ষেপ করা হয় এবং ইভেন্টের রাষ্ট্রীয় সম্পত্তিতে ইতিহাসের প্রবেশের রাজ্য অবজেক্টের একটি অনুলিপি থাকে।
রাষ্ট্রীয় অবজেক্ট এমন কিছু হতে পারে যা সিরিয়ালযুক্ত করা যায়। যেহেতু ফায়ারফক্স ব্যবহারকারীর ডিস্কে রাষ্ট্রীয় বস্তুগুলি সংরক্ষণ করে যাতে ব্যবহারকারী তার ব্রাউজারটি পুনরায় চালু করার পরে সেগুলি পুনরুদ্ধার করা যায়, আমরা একটি রাষ্ট্রের সামগ্রীর ক্রমিক উপস্থাপনায় একটি আকারের সীমা 640 কে অক্ষর চাপিয়ে দিই। যদি আপনি এমন কোনও রাজ্য অবজেক্ট পাস করেন যার ক্রমিক প্রতিনিধিত্ব এর থেকে বড় হয় pushState()
তবে পদ্ধতিটি একটি ব্যতিক্রম ছুঁড়ে দেবে। আপনার যদি এর চেয়ে আরও বেশি জায়গার প্রয়োজন হয় তবে আপনি সেশন স্টোরেজ এবং / অথবা লোকালস্টোরেজ ব্যবহার করতে উত্সাহিত হবেন।
শিরোনাম - ফায়ারফক্স বর্তমানে এই প্যারামিটারটিকে উপেক্ষা করে, যদিও এটি ভবিষ্যতে এটি ব্যবহার করতে পারে। এখানে খালি স্ট্রিংটি পাস করা পদ্ধতিতে ভবিষ্যতের পরিবর্তনের বিরুদ্ধে নিরাপদ হওয়া উচিত। বিকল্পভাবে, আপনি যে রাজ্যে চলেছেন তার জন্য আপনি একটি সংক্ষিপ্ত শিরোনাম পাস করতে পারেন।
ইউআরএল - নতুন ইতিহাস প্রবেশের URL টি এই প্যারামিটার দ্বারা দেওয়া হয়েছে। নোট করুন যে কল করার পরে ব্রাউজারটি এই ইউআরএলটি লোড করার চেষ্টা করবে না pushState()
, তবে এটি ইউআরএল পরে লোড করার চেষ্টা করতে পারে, উদাহরণস্বরূপ ব্যবহারকারী তার ব্রাউজারটি পুনরায় চালু করার পরে। নতুন ইউআরএল নিখুঁত হওয়ার দরকার নেই; যদি এটি আপেক্ষিক হয় তবে এটি বর্তমান ইউআরএলের তুলনায় সমাধান হয়েছে। নতুন ইউআরএল অবশ্যই বর্তমান ইউআরএল হিসাবে একই উত্স হতে হবে; অন্যথায়, pushState()
একটি ব্যতিক্রম নিক্ষেপ করা হবে। এই প্যারামিটারটি alচ্ছিক; যদি এটি নির্দিষ্ট না করা থাকে তবে এটি নথির বর্তমান ইউআরএলে সেট করা আছে।