কিছুটা ক্রোম এক্সটেনশন করার সময়, আমি একটি সংযোজনজনিত সমস্যা নিয়ে একই সমস্যার মুখোমুখি হয়েছিলাম: কখনও কখনও পৃষ্ঠাটি পরিবর্তন হয় তবে ইউআরএল নয়।
উদাহরণস্বরূপ, কেবল ফেসবুক হোমপেজে যান এবং 'হোম' বোতামটি ক্লিক করুন। আপনি পৃষ্ঠাটি পুনরায় লোড করবেন তবে URL টি পরিবর্তন হবে না (এক পৃষ্ঠার অ্যাপ স্টাইল)।
সময়ের 99%, আমরা ওয়েবসাইটগুলি বিকাশ করছি যাতে আমরা সেই ঘটনাগুলি ফ্রেমওয়ার্কগুলি থেকে যেমন কৌণিক, প্রতিক্রিয়া, মান ইত্যাদির কাছ থেকে পেতে পারি ..
কিন্তু , আমার ক্রোম এক্সটেনশনের ক্ষেত্রে (ভ্যানিলা জেএসে), আমাকে এমন একটি ইভেন্ট শুনতে হয়েছিল যা প্রতিটি "পৃষ্ঠা পরিবর্তন" এর জন্য ট্রিগার করবে, যা সাধারণত ইউআরএল পরিবর্তিত হয়ে ধরা যেতে পারে, তবে কখনও কখনও তা হয় না।
আমার বাড়ির তৈরি সমাধানটি ছিল:
listen(window.history.length);
var oldLength = -1;
function listen(currentLength) {
if (currentLength != oldLength) {
// Do your stuff here
}
oldLength = window.history.length;
setTimeout(function () {
listen(window.history.length);
}, 1000);
}
সুতরাং মূলত লিনকোকার্ট সমাধানটি উইন্ডো ইতিহাসে প্রয়োগ করা হয়, যা কোনও একক পৃষ্ঠায় অ্যাপ্লিকেশনটিতে কোনও পৃষ্ঠা পরিবর্তিত হলে পরিবর্তিত হবে।
রকেট বিজ্ঞান নয়, তবে সবচেয়ে পরিষ্কার সমাধান আমি খুঁজে পেয়েছি, বিবেচনা করে আমরা এখানে কেবলমাত্র একটি পূর্ণসংখ্যার সমতা পরীক্ষা করছি, এবং বড় কোনও অবজেক্ট বা পুরো ডিওএম নয়।