استراتيجية التحسين لإنشاء آلاف النوافذ المعلوماتية على خريطة جوجل

StackOverflow https://stackoverflow.com/questions/6372634

سؤال

أنا مستخدم جديد لواجهة برمجة تطبيقات خرائط Google وقد استحوذت للتو على تطبيق RoR الذي يرسم ما يصل إلى 2000 علامة على الخريطة باستخدام MarkerClusterer ولكل علامة نافذة معلومات مرتبطة بها.

تنشئ عملية التنفيذ الحالية مجموعة من سلاسل محتوى نافذة المعلومات في جافا سكريبت وتنزيل جافا سكريبت في المتصفح. غير مضغوط (بدون ضغط محتوى الخادم) ، يمكن أن يصل حجم المصفوفة وجافا سكريبت إلى 9 ميجابايت.

إن معوقات الأداء المرتبطة بهذا التنفيذ والتي وجدتها هي: 1. حان الوقت على الخادم لإنشاء 2000 سلسلة ووضعها في مصفوفة JavaScript. (حوالي 4-5 ثوانٍ) 2. الوقت على الخادم لضغط JavaScript متعدد الميجابايت قبل إرسالها إلى المتصفح. (~ 2-3 ثوانٍ)

فكرتي الأولى هي إنشاء نموذج لسلسلة محتوى infowindow التي تحتوي على جميع تنسيقات HTML بحيث تكون البيانات الوحيدة الموجودة في مصفوفة محتويات infowindow هي الأرقام الأولية الفعلية المراد عرضها. هذا من شأنه أن يقلل بشكل كبير من وقت الحساب لتجميع مصفوفة سلاسل المحتوى على الخادم ، وبالتالي تقليل الذاكرة التي تستهلكها المصفوفة في المتصفح. أيضًا ، يجب فتح نافذة معلومات واحدة فقط في كل مرة.

نظرًا لأنني لست على دراية بواجهة برمجة تطبيقات خرائط Google الإصدار 3 ، فأنا أبحث عن أي إرشادات حول ما إذا كانت هذه هي أفضل استراتيجية للتحسين أم لا. وأي مؤشرات إلى نماذج التعليمات البرمجية التي تنفذ هذا النوع من الإستراتيجيات.

شكرًا مقدمًا ،

-سكوت

هل كانت مفيدة؟

المحلول

أعتقد أنه لا يجب تحميل جميع مجموعات البيانات البالغ عددها 2000 في المصفوفة الخاصة بك ، ولكن عليك القيام بأحد بديلين:

  1. ما عليك سوى تحميل العلامات وبالتالي نوافذ المعلومات الموجودة في منفذ العرض الحالي.
  2. يتم تحميل محتوى infowindow عن طريق ajax ، عند النقر فوق العلامة.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top