TopRuNet.com - ON-LINE каталог статей

[в избранное]

Быстрая навигация Авто
Бизнес и Финансы
Интернет
Компьютеры
Культура и искусство
Медицина и здоровье
Музыка
Связь
Семья, дети, дом
Спорт
Строительство и ремонт
Туризм и путешествия
Увлечения и Хобби
Юмор
Поиск по сайту
Яndex - поиск по сайту TopRuNet.com
Новые поступления
  • Honda Accord на родине великих композиторов, первый тест-драйв
  • Новая Opel Astra. Первые фото
  • Новый Focus - за что берут лишние деньги?
  • Один час в пробке – минус 500 рублей
  • Peugeot Partner. Покупать или нет?
  • Интересное
  • Бесплодие: народная медицина
  • Советы по выбору стальной двери
  • Как победить второй подбородок?
  • Лимон в косметологии
  • Советы по ремонту ванны и туалета
  • Ждем ваш голос! Удобны ли Вам дизайн и навигация нашего проекта?
     Да  Нет 
    Рассылка обновлений
     
    Путь к страничке

    Главная -> Интернет -> Веб-программирование -> JavaScript спешит на помощь - 2

    Объявления
    Содержание

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

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

    Итак, нам нужно каким то образом передать странице dat.html один или несколько параметров и в зависимости от принятых параметров подключать тот или иной файл. Передавать параметры будем через адресную строку, например: dat.html?id=101 Далее мы детально рассмотрим ее. Теперь нам надо написать процедуру обработки адресной строки для того, чтобы можно было извлечь значение параметра. Поскольку данная процедура в будущем опять же может нам понадобится в других документах, давайте разместим ее в отдельном файле bild.js:

    function GetParam(search, name){

    name=name+"=";
    var gp="";
    if (search!='') {
    if (search.indexOf (name, 0)!=-1){
    var startpos=search.indexOf(name, 0)+name.length;
    var endpos=search.indexOf("&",startpos);
    if (endpos<startpos) {endpos=search.length;}
    var gp=p.substring(startpos,endpos);
    } else {
    gp=""; }
    }
    else {
    gp="";
    }
    return gp;
    }
    var p=window.location.search;
    var gp=GetParam(p, "id");
    if (gp=="") {gp="default";}
    document.write('<img src="'+gp+'.jpg">');

    Вкратце о работе процедуры: мы ищем значение параметра с именем id, переданого в адресной строке в формате:

    имя_документа?имя_параметра1=значение_параметра1&
    имя_параметра2=значение_параметра2&…

    Как видно имя документа отделяется от параметров знаком вопроса. После чего идет имя параметра и его значение, между ними знак равенства. Имена параметров разделяются знаком амперсанд - &. То есть можно добавлять обработку неограниченого числа параметров. В нашем примере процедура ищет значение только одного параметра с именем id:

    var gp=GetParam(p, "id");

    Если параметра нет, присваиваем ему значение "default":

    if (gp=="") {gp="default";}

    После этого можем использовать значение параметра, например, вставить в документ строку, отображающюю соответствующюю картинку:

    document.write('<img src="'+gp+'.jpg">');

    Вот собственно и все. Работу самой процедуры поиска рассматривать не будем, и так все понятно, а кому нет – пусть мне напишет, помогу разобраться.

    Ну и сам dat.html:

    <html>
    <head>
    <title>Dynamic add demo</title>
    </head>
    <body>

    <script LANGUAGE="JavaScript">
    function mov(form)
    {
    var myindex=form.dif.selectedIndex
    location.href=(form.dif.options[myindex].value);
    }
    </script>

    <form>
    <select NAME="dif" size="1">
    <option value="dat.html?id=pic1">Рисунок 1</option>
    <option value="dat.html?id=pic2">Рисунок 2</option>
    <option value="dat.html?id=pic3">Рисунок 3</option>
    </select>
    <INPUT onclick="mov(this.form, window)" type=button value=Смотреть>
    </form>

    <script language="JavaScript" src="bild.js"></script>

    </body>
    </html>

    При открытии страницы будет отображен рисунок, содержащийся в файле default.jpg (так как параметр задан не будет). Но стоит выбрать один из пунктов меню выпадающего списка и нажать на кнопку "Смотреть" и тут откроется выбраная картинка. Как видно из листинга, при выборе пункта меню "Рисунок 1", документу dat.html будет передан параметр id равный "pic1". После чего в подключаемом файле bild.js значение параметра будет подставлено в строку:

    document.write('<img src=”значение_параметра.jpg”>');

    вследствии чего в документе dat.html будет отображет рисунок с именем значение_параметра.jpg (в нашем случае pic1.jpg). Конечно, никто не мешает передавать в параметре полное имя файла (особенно полезно когда файлы разные - jpg, gif, bmp...) или даже целые строки HTML кода. Функция mov в dat.html служит лишь для перехода по выбраной в вписке ссылке.

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

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

    Одно из самых главных приемуществ данного метода по сравнению с использованием SSI для вставок данных в документ является его скорость. Да, да именно скорость. Если на страницах сайта использовать одну и ту же вставку на JS, то она будет загружаться только один раз - при первом посещении сайта (и разумеется если вставка будет изменена). В последствии при дальнейшем серфинге по сайту вставка будет подгружаться из кеша броузера тоесть с винта посетителя. Этот факт явно ускорит загрузку страницы. Таким методом можно сократить часть загружаемой с сервера информации в несколько раз!

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

    <script src="http://адрес_документа"></script>

    и его код будет вставлен в документ при его просмотре. Единственое что - подключаемый документ должен быть оформлен командами document.write - для текста. Разумеется, допустимо наличие в подключаемом документе JS кода, только уже без команд document.write Таким образом можно разместить много информации, занимающей мало места. Вспомним информеры. Они, как правило, графические – “весят” много, но информации несут мало. А вот если оформить их в виде таблицы на JS вставке, то грузиться они будут мгновенно. Кроме того, такая вставка не будет бросаться в глаза, и нарушать дизайн сайта.

    Ну, вот и все. Удачного сайтостроения!

    Источник: http://www.ru-coding.com/

  • Ваши комментарии к статье (0)
  • Читайте также:
  • Расширения PHP для работы с mp3
  • Безопасность интернет-приложений
  • Парсер на РНР - это возможно!
  • Скрытая загрузка на JavaScript
  • Обработка строк в РНР
  • Объявления


    Copyright © 2006 TopRuNet.com: сделаем РуНет лучше, вместе! Наши контакты, RSS. Execute time: 0.0548 sec.