Разбиение подменю на ul
Добрый день!
Подскажите, пожалуйста, такую штуку: Как разделить каждый столбик меню на ul. Пример: Главный пункт: Пункт 1 От него идет подменю: <ul (первый столбик)> <li><a href="/">Подпункт 1</li> <li><a href="/">Подпункт 2</li> <li><a href="/">Подпункт 3</li> </ul> <ul (второй столбик)> <li><a href="/">Подпункт 4</li> <li><a href="/">Подпункт 5</li> <li><a href="/">Подпункт 6</li> </ul> И т.д. Как мне сделать так, что бы каждые три пункта закрывались в ul автоматически? |
Цитата:
|
str='\ <li><a href="/">Item 1</li> \ <li><a href="/">Item 2</li> \ <li><a href="/">Item 3</li> \ <li><a href="/">Item 4</li> \ <li><a href="/">Item 5</li> \ <li><a href="/">Item 6</li> \ ' re=/<(li)>(.*?)\1>/gi arr=str.match(re) counter=0 for(i=0; i<=arr.length; i++){ if((counter++)===3){ arr.splice(i, 0, "</ul><ul>") counter=0 } } str="<ul>"+arr.join("") str=str.replace(/.{4}$/, "") alert(str) |
Если html генерится в php, то через array_chunk очень просто сделать
<? // допустим в $items у нас все пункты приходят $chunks = array_chunk($items, 3); $foreach ($chunks as $chunk) { ?> <ul> <? foreach ($chunk as $item) { ?> <li><?= $item->text ?></li> <? } ?> </ul> <? } |
danik.js,
Ага, а если html генерится на паскале, то через pascal_huy еще легче сделать. Ну это ладно, ты скажи, нахрена загружать сервак? Ты учти еще, что все это сказывается на ожидании ответа другими клиентами. Чем больше ты вычисляешь, тем дольше они курят бамбук. А в случае однопоточного языка, ты вообще заблокируешь все запросы. |
petya жизнь тебя сильно обидела, если ты не слышал про кэширование. Впрочем и без него, сколько ms займет вызов array_chunk и итерация по результату?
|
danik.js,
Цитата:
|
То есть ты уверен, что этот самый вызов array_chunk - будет самым тормозным в скрипте, генерирующем html, верно? И что на высоконагруженных сайтах кэш никогда не используют, чтобы снизить нагрузку, верно?
|
Ок, все вопросы снимаю. Посмотрел твой профиль и понял что передо мной гуру программирования )))
|
danik.js,
Хватит бестолковится. Кеш не серебрянная пуля, что-то можно закешировать, что-то нет. Кеширование само по себе отжирает ресурсы. Насчет остального, я вижу, ты ни хрена не понял. Хинт: количество запросов в единицу времени. Да и, безотносительно всей этой воды, аксиома: то что можно вынести на клиент, НИКОГДА не следует вычислять на сервере. |
Часовой пояс GMT +3, время: 11:22. |