Честно говоря, 30 КБ для элемента - ничто в наше время, с высокоскоростными соединениями и браузерами, которые эффективно кэшируют при необходимости.Люди не уходят из-за секунды или двух.Когда у вас есть Flash-ролики с предварительной загрузкой или сумасшедшие видео с автоматическим запуском, люди спешат раздражаться.
У меня есть подобное приложение с меню, которое сейчас, вероятно, вдвое больше ... позвольте мне добавить, это не по выбору, это то, что я унаследовал и должен поддерживать в настоящее время.Меню выводится просто в неупорядоченном списке, а затем я использую Superfish и CSS, чтобы выполнить стилизацию по мере необходимости.Первоначальный хит есть, но после этого начинается кэширование, и мы готовы к работе.Несмотря на сумасшествие, нагрузка не слишком высока.Навигация по нему, однако, беспорядок.Я настоятельно рекомендую не путать чертовски многообещающий выбор вашего пользователя, особенно в мегаменю, которое может стать препятствием для пользовательского интерфейса для инвалидов и пожилых пользователей.Когда вы сводите это к минимуму, вся основа «движения Web 2.0» (я ненавижу этот термин) состоит в том, чтобы минимизировать или скрыть сложность.
Если вы действительно обеспокоены производительностью, начните с того, что выперегрузка.Ограничьте свой Javascript, комбинируя файлы, особенно те небольшие файлы Jquery, которые имеют тенденцию складываться.HTTP-запросы могут серьезно повлиять на сайт, тем более что они изначально монополизируют нагрузки.Точно так же объединяйте небольшие CSS-файлы и оптимизируйте все остальное с помощью онлайн-инструмента . Чтобы уменьшить загрузку изображений, создайте спрайты для своей графики, чтобы вы загружали один файл вместо многих. Вот параграф о спрайтах , и простой поиск в Google предоставит вам десятки сайтов, которые будут автоматически создавать спрайты и CSS.Загрузите все, что вы можете из CDN, например, Jquery, Prototype и т. Д. (Надеюсь, только один фреймворк на сайт, потому что два или более не нужны)
Если вы все еще не справились, посмотрите на свою графику еще развремя.Не могли бы вы воспользоваться чистым CSS или повторением изображений через CSS для дальнейшего снижения нагрузки?Вы оптимизировали всю графику?Не могли бы вы настроить дизайн, чтобы воспользоваться этими приемами?
После всего этого, если вы просто не можете изменить меню, чтобы сделать его более дружелюбным, начните исследовать варианты.Тем не менее, я подозреваю, что вы найдете лучшие результаты в первые пару шагов, чем если бы вы приняли экстремальные меры в меню.