Добро Пожаловать  Ru.Board
 

Навигация
  • Главная
  • Форум
  • Темы
  • Топ лист
  • Файловый архив

  • Реклама





    Проголосуй!
    Статьи на какие темы вы бы желали видеть на нашем сайте?

    Системное администрирование Windows
    Администрирование *nix систем
    Обзоры пользовательского программного обеспечения
    Вебмастеринг: тонкости сайтостроения
    Вебмастеринг: юзабилити сайтов
    Вебпрограмминг: полезные решения
    Linux-системы: вопросы по работе
    Вопросы по аппаратной части компьютеров
    Обзоры программ для администраторов
    Компьютерная безопасность (для пользователей)
    Компьютерная безопасность (для администраторов)
    Другое


    Результаты
    Другие Опросы

    голосов: 16198

    Избранное
  • Установка Php-Nuke
  • Установка IkonBoard на локалхосте



    Форум по движку IkonBoard V.2

    Файловый архив для вебмастеров: полезные скрипты

    Форум по операционным системам: Linux, Windows, Mac

  • Поиск по сайту




    IkonBoard: Ускорение работы IkonBoard V. 2. Часть I.
    Опубликовал lynx 02.10.2003 00:41

    IkonBoard v2.1.*
    Администраторам конференций на базе движка IkonBoard V. 2 хорошо известна невысокая скорость ее работы. Это особенно хорошо заметно на перегруженных бесплатных хостингах, а также при высокой посещаемости конференции.
    В данной статье мы кратко рассмотрим некоторые приемы, которые позволят увеличить скорость работы IkonBoard V.2, одновременно снизив нагрузку на сервер. В последующих статьях мы подробней остановимся на отдельных приемах.

    Добиться увеличения скорости работы конференции можно с помощью двух основных путей:

    1. Повышение скорости отображения генерируемых страниц в браузере.
    2. Оптимизация работы самих скриптов, генерирующих страницы для отображения в браузере.

     
    Первый путь - наиболее простой и доступный начинающим администраторам, может быть реализован двумя основными приемами.

    Повышение скорости отображения страниц в браузере

    1.1. Избавление от лишней графики.
    1.2. Перевод html-кода конференции на CSS.

     
    Второй путь более сложный, по поводу него в форуме IkonBoard V. 2 участники устроили большую дискуссию: «Оптимизация кода IB (увеличение скорости работы)».
    Подводя итог этой дискуссии, можно отметить следующие приемы.

    Оптимизация кода скриптов конференции

    2.1. Поставить хак, ускоряющий работу конференции - upspeedhack. Скачать его можно в файловом архиве Ru.Board. В текущем дистрибутиве этот хак установлен, поэтому подробнее на данном пункте мы останавливаться не будем.
    2.2. Убрать лишние возможности, которые практически не используются.
    2.3. Избавиться от лишних переменных там, где это возможно. В частности, урезать IkonRussian.lib, удалив неиспользуемые переменные и/или вынеся часть переменных в другие библиотечные файлы.
    2.4. Добиться работы скриптов с прагмой strict (use strict).

     
    Конечно, это не полный список того, что можно сделать для ускорения работы IkonBoard V.2. Однако, если вам удастся реализовать все пункты, вы получите существенный прирост скорости и снижение нагрузки на сервер. Ваша конференция сможет выдержать значительно большую посещаемость и стать более привлекательной для пользователей.

     

    Теперь чуть подробнее остановимся на одном из вышеперечисленных пунктов - избавлении от лишней графики. Это, пожалуй, наиболее простой прием оптимизации, однако вы сразу заметите результат.

    Как бы вы ни были уверены в своих силах, перед редактированием любого скрипта делайте резервные копии.
    Для редактирования скриптов и организации поиска в них при написании статьи использовалась программа "Aditor", но вы можете взять любой другой привычный вам редактор.

     

    Избавляемся от лишней графики

    Использование текста вместо картинки ускоряет скорость загрузки практически любой страницы. В нашем же случае это важно еще также потому, что большинство картинок в коде скриптов - это отдельные переменные, занимающие место в памяти сервера. Впрочем, по поводу переменных мы поговорим в следующих статьях, а сейчас посмотрим, от каких картинок можно не только безболезненно избавиться, но и улучшить при этом дизайн вашей конференции.

    Один из наиболее часто запрашиваемых и одновременно достаточно нагруженных различными функциями скриптов - topic.cgi - выводит содержимое тем форума (рис. 1).

    Внешний вид страницы, генерируемой скриптом topic.cgi

    Рис. 1. Внешний вид страницы, формируемой скриптом topic.cgi.

     

    Прежде всего, следует обратить внимание на весьма непривлекательное ступенчатое расположение "названия конференции - названия форума - названия темы" (цифра 1 на рис. 1). Для организации такого расположения используются три картинки: closedfold.gif, bar.gif, openfold.gif, избавившись от которых мы ускорим загрузку страницы. Кроме того, расположение в одну строчку, оформленное только текстом, выглядит гораздо приятнее. Посмотрите для примера, как это реализовано на Ru.Board.

    Итак, открываем файл topic.cgi, задаем поиск по строке "closedfold.gif" и находим этот код:

    <tr><td width=30% rowspan=2>$forumgraphic</td>
    <td valign=middle align=top><font face="$font" color=$fontcolormisc size=$dfontsize2>
    <font face="$font" color=$fontcolormisc size=$dfontsize2>
    &nbsp;&nbsp;<img src="$imagesurl/images/closedfold.gif" border=0>
    <a href="$forumsummaryprog">&nbsp;&nbsp;$boardname&#60;/a>
    <br>
    &nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0>
    <img src="$imagesurl/images/closedfold.gif" border=0>
    &nbsp;&nbsp;<a href="$forumsprog?forum=$inforum">$forumname</a>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0>
    <img src="$imagesurl/images/openfold.gif" border=0>
    &nbsp;&nbsp;$topictitle
    </td>
    $uservisitdata
    </tr>
    

    Меняем его, например, на этот код:

    <tr><td rowspan=2 colspan="2">
    <font face="$font" color=$fontcolormisc size=$dfontsize2>$boardname</a>
    &nbsp;&nbsp;&#187;&nbsp;&nbsp;<a href="$forumsprog?forum=$inforum">$forumname</a>
    &nbsp;&nbsp;&#187;&nbsp;&nbsp;$topictitle</font>
    <br> 
    </td>
    $uservisitdata
    </tr>
    
    Таким образом, мы убрали все картинки, формирующие вывод названия темы, а также логотип конференции. Логотип более уместно будет смотреться не рядом с названием темы, а, например, вверху форума. Впрочем, изменение расположения логотипа в данной статье мы не рассматриваем.
    Итак, после замены кода тот же заголовок топика, что изображен на рисунке 1 (цифра 1), будет иметь следующий вид:

    Вид topic.cgi после редактирования вывода названия темы

    Рис. 2. Вывод названия темы текстом.

     

    Аналогичным образом можно произвести замену вывода этой части страниц во всех скриптах, а именно (сделайте поиск в файлах по строке "closedfold.gif"):

    announcements.cgi
    forums.cgi
    ikon.lib
    ikonfriend.cgi
    loginout.cgi
    privacy.cgi
    profile.cgi
    search.cgi
    viewip.cgi
    whosonline.cgi

     

    Возвращаемся к файлу topic.cgi.
    Вверху справа выводятся картинки "Версия для печати" и "Отправь другу" (цифра 2 на рис. 1). Если заменить картинки текстовыми ссылками, мы снова немного выиграем в скорости загрузки.
    Для этого меняем код:

    $printpageicon = qq~<a href="$printpageprog?forum=$inforum&topic;=$intopic"><img src="$imagesurl/images/$printpage" border=0></a>~; if ($privateforum ne "yes") { $sendtofriendicon = qq~<a href="$ikonfriendprog?forum=$inforum&topic;=$intopic"><img src="$imagesurl/images/$emailtofriend" border=0></a>~;

    на:

    $printpageicon = qq~<a href="$printpageprog?forum=$inforum&topic;=$intopic">Версия для печати</a>~; if ($privateforum ne "yes") { $sendtofriendicon = qq~<a href="$ikonfriendprog?forum=$inforum&topic;=$intopic">Отправить другу</a>~;

    Обратите внимание, при такой замене мы избавляемся не только от вывода двух картинок, но и от использования двух переменных: $imagesurl и $printpage. Интерпретатору Perl не нужно будет выполнять дополнительную работу по подстановке их значений, что несколько сэкономит ресурсы.

     

    Теперь смотрим на цифру 3 (рис. 1). Вверху каждого сообщения выводится 8 картинок. Все, кроме номера в ICQ, можно аналогичным образом заменить текстовыми ссылками. Попробуйте сделать это самостоятельно. Править нужно тот же файл topic.cgi. Если вам не удастся справиться с этой задачей, пожалуйста, задавайте вопросы в нашем форуме IkonBoard V. 2.

     

    Имеет смысл убрать вывод картинки, обозначающей принадлежность к команде (цифра 4 на рис. 1). Вполне достаточно подписи "Moderator" или "Administartor" под аватаром. Кроме того, сама картинка выполнена так, что, глядя на нее, принадлежность к команде вовсе не становится очевидной.
    Убрать вывод картинки, а также код, связанный с этим выводом можно, удалив или закомментировав в topic.cgi:

    if ($team){
    $membername = "$membername <img src=\"$imagesurl/images/$team\" border=0>";}

    Примечание: Чтобы закомментировать одну строку в языке Perl нужно поставить знак # вначале этой строки.

    Также можно убрать вывод так называемых "пипсов" - картинок (pips[x].gif), графически показывающих статус пользователя (цифра 5 на рис. 1). Вполне достаточно будет оставить собственно вывод статуса текстом (в данном примере - "Administrator").
    Убрать вывод "пипсов" и избавиться от кода, с ними связанного можно, удалив или закомментировав
    этот код:

    if ($pips eq 'on'){
    $membergraphic = "<img src=\"$imagesurl/images/$admingraphic\" border=\"0\">";}
    else { undef $membergraphic;}

    и этот код:

    if (($pips eq 'on') && ($membergraphic)) {
    $membergraphic = "<img src=\"$imagesurl/images/$membergraphic\" border=\"0\">"; }
    else { undef $membergraphic;}

    А также заменив этот код:

    if ($numberofposts > $mpostmark5) { $mtitle = "$mtitle5"; $membergraphic = "$mgraphic5"; }
    elsif ($numberofposts > $mpostmark4) { $mtitle = "$mtitle4"; $membergraphic = "$mgraphic4";}
    elsif ($numberofposts > $mpostmark3) { $mtitle = "$mtitle3"; $membergraphic = "$mgraphic3"; }
    elsif ($numberofposts > $mpostmark2) { $mtitle = "$mtitle2"; $membergraphic = "$mgraphic2"; }
    else { $mtitle = "$mtitle1"; $membergraphic = "$mgraphic1"; }

    на этот код:

    if ($numberofposts > $mpostmark5) { $mtitle = "$mtitle5";}
    elsif ($numberofposts > $mpostmark4) { $mtitle = "$mtitle4";}
    elsif ($numberofposts > $mpostmark3) { $mtitle = "$mtitle3";}
    elsif ($numberofposts > $mpostmark2) { $mtitle = "$mtitle2";}
    else { $mtitle = "$mtitle1";}

    И удалив или закомментировав строку:

    $membergraphic = "";

    в куске:

    elsif ($membercode eq "banned") {
    $posterfontcolor = "$posternamecolor";
    $membergraphic = "";
    $membertitle = "$ibtxt{'3010'}";
    }

    и строку:

    <br>$membergraphic

    в куске:

    <a href="javascript:paste('$mname')"><b>$membername</b></a></font>
    <br>$useravatar
    <br>$membergraphic
    <br><font face="$font" color=$postfontcolor size=$dfontsize1>$membertitle $locat</font>

    Если вы уверены, что вам никогда не захочется вернуть "пипсы" обратно, удалите соответствующие переменные из файла data/membertitles.cgi, а именно эти:

    $mgraphic1 = "pips1.gif";
    $mgraphic2 = "pips2.gif";
    $mgraphic3 = "pips3.gif";
    $mgraphic4 = "pips4.gif";
    $mgraphic5 = "pips5.gif";
    $admingraphic = "pips6.gif";

     

    На этом предлагаю остановиться в урезании картинок в файле topic.cgi. Как видно на рис. 1 (цифры 6 и 7), из графики остались только аватар и картинки "Новая тема" и "Ответить". Впрочем, можете избавиться и от них, это дело вашего вкуса.

     

    Другие файлы конференции не столь перегружены картинками, либо картинки несут смысловую нагрузку (например, отображают, открыта или закрыта тема). Поэтому урезание лишней графики можно считать завершенным.

    В следующей статье мы рассмотрим перевод конференции на CSS.
     

    См. также Обзор форума IkonBoard V. 2 (карта форума) » Статьи, хаки - вся IkonBoard V. 2 в одной теме


    КомментироватьВерсия для печати

     
    Категории
  • В помощь сисадмину
  • Все о софте
  • Вебмастеру
  • Игры
  • Hardware
  • О сайте
  • Программирование
  • Операционные системы
  • IkonBoard
  • InvisionBoard
  • Скрипты в примерах
  • Php-Nuke
  • Цифровое изображение
  • Юмор

  • Ссылки по теме
  • http://ikonboard.com
  • Русский IkonBoard
  • Ещё о IkonBoard v2.1.*
  • Новости от lynx


    Популярная статья в категории IkonBoard v2.1.*:

    Установка IkonBoard на локалхосте.



  • This web site was made with PHP-Nuke