যেহেতু আপাতদৃষ্টিতে আপনি মানচিত্রের দৃষ্টান্তগুলি সত্যই ধ্বংস করতে পারবেন না, যদি এই সমস্যাটি হ্রাস করার উপায়
- আপনার ওয়েবসাইটে একবারে কয়েকটি মানচিত্র দেখাতে হবে
- ব্যবহারকারীর মিথস্ক্রিয়ার সাথে মানচিত্রের সংখ্যা পরিবর্তন হতে পারে
- অন্যান্য উপাদানগুলির সাথে মানচিত্রগুলি লুকিয়ে রাখা এবং পুনরায় দেখানো দরকার (উদাহরণস্বরূপ তারা ডিওমে একটি স্থিত অবস্থানে উপস্থিত হবে না)
মানচিত্রের উদাহরণগুলির একটি পুল রাখছে। পুলটি ব্যবহারের উদাহরণগুলির ট্র্যাক রাখে, এবং যখন এটি একটি নতুন উদাহরণের জন্য অনুরোধ করা হয়, এটি উপলব্ধ মানচিত্রের উদাহরণগুলির মধ্যে কোনওটি নিখরচায় কিনা তা পরীক্ষা করে: এটি যদি থাকে তবে এটি একটি বিদ্যমানটিকে ফিরিয়ে দেবে, যদি তা না হয় তবে এটি তৈরি করবে নতুন মানচিত্রের উদাহরণ এবং সেটিকে পুলটিতে যুক্ত করে এটি ফিরিয়ে দিন। এইভাবে আপনার কেবলমাত্র পর্দায় একসাথে প্রদর্শিত সর্বাধিক মানচিত্রের সমান সর্বাধিক সংখ্যার উদাহরণ থাকবে। আমি এই কোডটি ব্যবহার করছি (এটিতে jQuery প্রয়োজন):
var mapInstancesPool = {
pool: [],
used: 0,
getInstance: function(options){
if(mapInstancesPool.used >= mapInstancesPool.pool.length){
mapInstancesPool.used++;
mapInstancesPool.pool.push (mapInstancesPool.createNewInstance(options));
} else {
mapInstancesPool.used++;
}
return mapInstancesPool.pool[mapInstancesPool.used-1];
},
reset: function(){
mapInstancesPool.used = 0;
},
createNewInstance: function(options){
var div = $("<div></div>").addClass("myDivClassHereForStyling");
var map = new google.maps.Map(div[0], options);
return {
map: map,
div: div
}
}
}
আপনি এটিকে শুরুর মানচিত্র বিকল্পগুলি (google.maps.Map এর নির্মাণকারীর দ্বিতীয় যুক্তি অনুসারে) পাস করেন এবং এটি উভয়ই মানচিত্রের উদাহরণ দেয় (যার উপরে আপনি google.maps.Map সম্পর্কিত ফাংশনগুলি কল করতে পারেন), এবং ধারকটি, যা আপনি "myDivClassHereForStyling" ক্লাসটি ব্যবহার করে স্টাইল করতে পারেন এবং আপনি ডোনমিকভাবে DOM এ যুক্ত করতে পারেন। আপনার যদি সিস্টেমটি পুনরায় সেট করতে হয় তবে আপনি মানচিত্রপুল.সেট () ব্যবহার করতে পারেন। এটি পুনরায় ব্যবহারের জন্য পুলটিতে বিদ্যমান সমস্ত দৃষ্টিকোণ রাখার সময়, কাউন্টারটিকে 0 এ রিসেট করবে। আমার অ্যাপ্লিকেশনটিতে আমাকে একবারে সমস্ত মানচিত্র সরিয়ে নতুন মানচিত্রের সেট তৈরি করতে হবে, সুতরাং নির্দিষ্ট মানচিত্রের পুনরায় ব্যবহার করার কোনও কার্যকারিতা নেই: আপনার মাইলেজটি ভিন্ন হতে পারে। স্ক্রীন থেকে মানচিত্রগুলি সরাতে, আমি jQuery এর বিচ্ছিন্নতা ব্যবহার করি, যা মানচিত্রের ধারকটিকে ধ্বংস করে না।
এই সিস্টেমটি ব্যবহার করে এবং ব্যবহার করে
google.maps.event.clearInstanceListeners(window);
google.maps.event.clearInstanceListeners(document);
এবং চলমান
google.maps.event.clearInstanceListeners(divReference[0]);
divReference.detach()
(যেখানে ডিভরিফারেন্স হ'ল ডিভের jQuery অবজেক্টটি ইনস্ট্যান্স পুল থেকে প্রত্যাবর্তিত হয়েছে) প্রতিটি ডিভি আমি যে অপসারণ করছি আমি ক্রোমের মেমরির ব্যবহার কমবেশি স্থিতিশীল রাখতে সক্ষম হয়েছি, প্রতিবার আমি যখন মানচিত্রগুলি মুছি এবং নতুন যুক্ত করি তখন তার বিপরীতে আমি ক্রমবর্ধমান।