Навигация
Мини-чат
200
 
 
Главная » Статьи » Уроки програмирования » JavaScript [ Добавить статью ]

JavaScript: полезные функции (часть IV)

Сегодня мы разберемся с тем, как организовать на страничке локальную баннерную систему, пользуясь только средствами JavaScript. Данная функция, кстати, может быть полезна и программистам на ASP.

Для чего это нужно?


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

Несмотря на то, что я буду объяснять как написать небольшую баннерную систему с использованием JavaScript, изложенные принципы вполне применимы и для любых других языков.

Условия задачи и ограничения


А теперь, давайте, более подробно сформулируем условия задачи и введем ряд ограничений, которые упростят программирование. Баннерная система должна выполнять следующие функции:


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

Накладываем на эти условия некоторые ограничения:


  • баннеры будут фиксированного размера, и храниться в формате GIF или JPEG
  • на страничке мы будем одновременно показывать четыре баннера

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


  • имя файла
  • альтернативный текст
  • адрес странички, на которую ссылается баннер

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

  1. <script language="JavaScript" src="banners.js"></script>   

А вот так, будет выглядеть содержимое файла banners.js

  1.    
  2.  var banners = new Array(   
  3.   
  4.   "pic-01.gif""Text #1""http://www.link1.com/",   
  5.   "pic-02.gif""Text #2""http://www.link2.com/",   
  6.   "pic-03.gif""Text #3""http://www.link3.com/",   
  7.   "pic-04.gif""Text #4""http://www.link4.com/",   
  8.   "pic-05.gif""Text #5""http://www.link5.com/",   
  9.   "pic-06.gif""Text #6""http://www.link6.com/",   
  10.   "pic-07.gif""Text #7""http://www.link7.com/",   
  11.   "pic-08.gif""Text #8""http://www.link8.com/",   
  12.   "pic-09.gif""Text #9""http://www.link9.com/",   
  13.   "pic-10.gif""Text #10""http://www.link10.com/"   
  14.  )   
  15.    

Как видите, структура массива не очень сложна. Под каждый баннер отводится три последовательные ячейки, в которых и хранятся: имя файла, альтернативный текст, адрес ссылки.

Программная часть


Вот мы и добрались до программирования. И, сначала, разберемся с некоторыми моментами.

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


Но, как я уже упоминал раньше, мы договорились, что одновременно на страничке будут показываться четыре баннера. И, следовательно, после каждой генерации случайного числа нам необходимо проверить, что данный баннер не совпадает с 3-мя другими. К тому же нам нужно где-то хранить уже сгенерированные числа. Для решения этих задач, мы организуем еще один массив - случайных чисел и при каждой генерации нового числа будем сопоставлять его с найденными ранее. Полный код, который решает эти проблемы, приведен ниже:

  1.    
  2.  var i, j;   
  3.  var flag; // Флажок, используемый для проверки совпадения   
  4.  var banners_show = 4; // Число показываемых на страничке баннеров   
  5.   
  6.  var rand = new Array(banners_show-1);   
  7.   
  8.  for (i=0; i<banners_show; i++) {   
  9.   do {   
  10.   flag=0;   
  11.   n = Math.floor(Math.random()*(banners.length/3));   
  12.   for (j=0; j<i; j++) {   
  13.   if (n == rand[j]) {   
  14.   flag=1;   
  15.   }   
  16.   }   
  17.   } while (flag);   
  18.   rand[i] = n;   
  19.  }   
  20.    

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

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

  1. function Show_Banner(number) {   
  2.   
  3. n=rand[number-1];   
  4.   
  5. document.write('<a href="' + banners[n*3+2] + '"><img src="banners/' +   
  6. banners[n*3] + '"' + 'border=0 width=' + banner_width + ' height=' +   
  7. banner_height + ' alt="' + banners[n*3+1] + '"></a>');   
  8.   
  9. }   

Вот, практически и все, наша локальная баннерная система готова. Осталось только четыре раза вызвать функцию Show_Banner() из подходящей части странички. Нужно, только не забыть, что код JavaScript отделяется от html тегами <script></script>:

  1. <script>   
  2. <!--   
  3. Show_Banner(1);   
  4. //-->   
  5. </script>   
  6.   
  7. .......   
  8.   
  9. <script>   
  10. <!--   
  11. Show_Banner(4);   
  12. //-->   
  13. </script>   

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

Архив с примером скрипта, рассмотренного в данной статье, можно взять отсюда.
Категория: JavaScript | Добавил: Djakob (16.10.2008)
Просмотров: 413 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Аккаунт
 
Поиск
Наши друзья

Закачайся на все 100%

V1T.RU

Занесено в каталог Deport.ru

Обмен ссылками

Закачайся на все 100%

Goon
каталог

Рейтинг сайтов TOP•MostInfo.net

Рейтинг сайтов

Участник Премии Рунета 2008

Goon поиск, почта, каталог добавить сайт, барахолка, работа, видео приколы, поиск людей, частные фотографии

Добавить сайт / обмен ссылками

Samsonite Получить свой бесплатный сайт в UcoZ a href="http://kinotraff.ru/in.php?id=25391&base=1" title="Скачать фильмы">Скачать фильмы Интернет-магазин багажа

Закачайся на все 100%
 
Голосование
Получаете ли вы деньги за ваш сайт?
Всего ответов: 23
Статистика
Сейчас на сайте: 1
Гостей: 1
Пользователей: 0

 
& design by Sapon&manysoft-net.ru