Что такое подстановка кадров? - PullRequest
0 голосов
/ 29 апреля 2011

Допустим, у меня есть веб-сайт с 50 веб-страницами. Каждая страница состоит из

  1. Заголовок
  2. Навигация
  3. Содержимое левой стороны
  4. Содержимое правой стороны
  5. Footer

Без использования

  1. Кадры
  2. Программирование на стороне сервера
  3. Инструменты и ПО третьей части
  4. рамочные

Мне нужно было бы поместить код (HTML-разметку) для каждого из этих 5 разделов на каждой из этих 50 страниц? Что случилось с термином «Один раз код, используйте снова и снова»? Кроме того, если я хочу изменить что-то, мне нужно будет изменить это в 50 местах. Это просто избыточно. Могу ли я использовать как таковой.

<object type="text/html" height="100%" width="100%" data="header.html"></object>

Извините за мои глупые вопросы. Учимся на нелегком пути!

Ответы [ 5 ]

4 голосов
/ 29 апреля 2011

Мне нужно было бы поместить код (HTML-разметку) для каждого из этих 5 разделов на каждой из этих 50 страниц?

Да

Что произошло с термином «Один раз код, используйте снова и снова»?

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

Можно ли использовать как таковой.<object type="text/html" height="100%" width="100%" data="header.html"></object>

Это фактически <iframe>, только с меньшим количеством функций и более слабой поддержкой браузера.

2 голосов
/ 29 апреля 2011

Вы описываете точный вариант использования языка на стороне сервера.

Позвольте мне объяснить вам проблему с вашим подходом. Если вы делаете свой сайт таким образом, имея index.html и те 5 других частей, которые вы включаете через object или iframe, это будет означать 6 запросов к вашему серверу (что, безусловно, не является хорошей практикой).

Вещи будут происходить так:

  • Браузер запрашивает ваш index.html
  • Анализирует его и находит, что он также должен запросить header.html и еще четыре
  • Запрашивает все эти 5 htmls с сервера

Вместо этого вы можете просто запросить index.php, например (если вы используете PHP), позволить PHP создать ресурс ONE HTML (возможно, включая другие файлы PHP, такие как header.php) и отправить его в браузер, который с радостью отобразит его.

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

Чтобы дать вам пример:

index.php

<!DOCTYPE html>
<html>
...
<body>

<?php include 'header.php'; ?>

<?php include 'navigation.php'; ?>

...

<?php include 'footer.php'; ?>

</body>
</html>

В ваших PHP-файлах вы можете использовать только простой HTML, только расширение файла будет другим. Для написания команд PHP вы можете использовать <?php whatever ?>

1 голос
/ 29 апреля 2011

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

cat header.html navigation.html body1.html > page1.html

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

0 голосов
/ 29 апреля 2011

Одним из распространенных решений является включение на стороне сервера (SSI), которое позволяет включать один блок разметки html на нескольких страницах (среди прочего). Если вы используете PHP, определенно учтите, что PHP включает в себя: http://www.w3schools.com/php/php_includes.asp.

0 голосов
/ 29 апреля 2011

Если вы не хотите использовать программирование на стороне сервера (это то, что было разработано для вас), ваш единственный выбор - это вызов AJAX для заполнения общих элементов во время выполнения.

Это, однако, не даст очень хорошего пользовательского опыта, так как страница медленно загружается сама ПОСЛЕ того, как казалось, что она завершает загрузку.

Вы действительно должны использовать программирование на стороне сервераэто.

...