@Mr_panica, листание можно определить, но уже постфактум, емнип, когда уже новая страница открыта. А это уже поздно, особенно если из БД читать.
Если данные статичные, то лучше получить их из БД ещё при старте плагина/карты и хранить в памяти, кмк. Даже может тогда же и меню сгенерить и не удалять его хэндл, пока плагин запущен.
А вот если динамические данные там, то при каждом вызове меню придётся обращаться к БД и выкачивать все данные.
Ну или использовать панели вместо меню. Но открытие новой страницы будет тормозить из-за каждого обращения к БД. И хорошо, если не будет тупить весь сервак вместе с менюшкой.