WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Вынесение цельной HTML-страницы в отдельный файл

Вынесение цельной HTML-страницы в отдельный файл


Дата публикации: 15-02-2011

Учитывая недостатки вышеперечисленных способов, можно предложить следующее решение. Разделим ASP-файл на 2 файла. Первый будет содержать только ASP-код и никаких посылок результатов клиенту. В этом файле должно полностью отсутствовать  HTML-форматирование. Файл будет включать в себя  (SSI) второй файл, который будет цельной HTML-страницей с минимальным количеством четко выделенного ASP-кода. Второй файл, по сути, будет тем же HTML-шаблоном, только вместо, например "[header]" будет написано "<%=obj.getHeader()%>", что не затруднит работу дизайнера. Но в нем также будет возможность выводить более сложные программные структуры. Идея в том, чтобы код во втором файле (где HTML) был действительно минимален и четко выделен. Т.е. все крупные куски кода инкапсулируются в функции и объекты, которые создаются в первом файле (чистый ASP-скрипт). Второй файл (HTML) лишь запускает эти функции и методы объектов. В этом плане javascript дает несомненные преимущества. Не пожалейте часа-двух, и изучите разные способы создания объектов в javascript - это позволит вам создавать удивительно красивые по своей простоте и логике архитектурные конструкции.

Общая схема разделения ASP/HTML  
file1.asp file2.htm.asp
Business Logic Level:
Чтение/Обработка данных. Создание объектов (например объекта objExample), которые будет использовать Файл #2
(file2.htm.asp). 
<html>...
<h1><%=objExample.getHeader()%></h1>

<% while (!objExample.eof()) { %>

Text: <%=objExample.getText()%>

<% objExample.next();
}
%>
...</html>
Presentation Level:
<!--#include file="file2.htm.asp"-->
Finalization Level:
Закрытие DB-connections, etc.

    Отметим также, что в случае перехода на JSP, такой HTML-шаблон можно совсем не менять. 
    Сформулируем основные принципы вышеописанного подхода:

  • ASP-страница состоит из 2х файлов
  • 1й файл содержит чистый серверный скрипт, и в нужном месте включает 2й файл, (например через SSI)
  • 1й файл не посылает информацию клиенту
  • 1й файл не содержит команд HTML
  • 1й файл инкапсулирует весь код в функции и/или методы объектов, которые затем могут быть вызваны из 2-го файла
  • 2й файл содержит полную HTML-страницу, от <html> до </html>
  • 2й файл содержит минимально возможный ASP-код. любой код бизнес-логики сокрыт в методах и/или функциях первого файла, и вызывается нужный метод или функция
  • 1й и 2й файлы не содержат команд Response.Write() (по причинам, описанным ниже)
  • 1й файл имеет расширение .asp, т.к. это чистый ASP-файл
  • 2-му файлу можно дать расширение .htm.asp, чтобы подчеркнуть, что это все-таки HTML по содержанию. Имя 2-го файла может быть то же что у 1-го, или с каким нибудь префиксом, для удобства поиска. Например: shopinfo.asp и _t_shopinfo.htm.asp.

    К побочным эффектам подобного разделения можно отнести достаточно простую возможность поддержки генерации не-HTML страниц. Например - WAP или XML. Для этого надо только написать другой файл шаблона (файл #2). Файл с серверным скриптом (#1) останется тем же.

    Теперь остановимся еще на двух часто встречающихся деталях.

Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

К. Гепперт и К. Пат:

"Центральный банк — это банк, при помощи которого государство вмешивается в дела частных банков и который, в отличие от них, может сам печатать нужные ему деньги."

Опрос

Какими социальными сетями Вы пользуетесь?

Vkontakte.ru
Одноклассники
Мой Мир - mail.ru
Google Plus
Facebook
ЖЖ
Другие
Не пользуюсь