#html #iframe #frame
#HTML #iframe #фрейм
Вопрос:
Допустим, у меня есть веб-сайт с 50 веб-страницами. Каждая страница состоит из
- Заголовок
- Навигация
- Содержимое левой части
- Содержимое правой части
- Нижний колонтитул
Без использования
- Фреймы
- Программирование на стороне сервера
- Инструменты и программное обеспечение третьей части
- Фреймворки
Мне нужно было бы поместить код (HTML-разметку) для каждого из этих 5 разделов на каждой из этих 50 страниц? Что случилось с термином «кодируй один раз, используй снова и снова»? Также, если я захочу что-то изменить, мне нужно будет изменить это в 50 местах. Это просто повторное использование. Могу ли я использовать как таковой.
<object type="text/html" height="100%" width="100%" data="header.html"></object>
Извините за мои глупые вопросы. Изучаем сложный путь!
Комментарии:
1. В чем ваша проблема с фреймами, программированием на стороне сервера и буквально со всеми инструментами и фреймворками во вселенной? Это немного ограничивает ваши возможности. Если это не серверная часть, это клиентская часть, что означает javascript или фреймы, которые имеют явные недостатки. Вам действительно следует использовать SSI или что-то подобное.
2. Потому что я новичок в веб-разработке и начинаю свой путь с HTML / XHTML, CSS, XML, Javascript, AJAX и, наконец, с PHP вместе с SQL (и в таком порядке)
3. Приятно слышать. Веб-это больше, чем просто клиентская часть. Такой язык, как PHP, необходим для надежного сайта в соответствии с тем, что вы описали в своем вопросе.
4. А что касается фреймворков, я их ненавижу. Я не хочу становиться программистом copy paste. Я думаю, и это мое личное мнение, что freworks следует использовать только с большим опытом и профессионалами. Например, CSS-фреймворки, такие как 960 и другие, просто позволяют вам проектировать и разрабатывать веб-сайты без необходимости понимать CSS на более глубоком уровне. Они, конечно, экономят время, но для новичка вроде меня, fisrt становятся по крайней мере удобными для CSS, и вы можете использовать их в случае необходимости.
Ответ №1:
Мне нужно было бы поместить код (HTML-разметку) для каждого из этих 5 разделов на каждой из этих 50 страниц?
ДА
Что случилось с термином «кодируй один раз, используй снова и снова»?
Вы отвергли все методы, которые делают это возможным в HTML (ну, если не считать написания собственного движка шаблонов с нуля (без сторонних инструментов) и запуска его во время сборки, а не по требованию (без кода на стороне сервера) или использования JavaScript (что безумно)).
Могу ли я использовать как таковой.
<object type="text/html" height="100%" width="100%" data="header.html"></object>
Фактически это <iframe>
, просто с меньшим количеством функций и более слабой поддержкой браузера.
Комментарии:
1. Не звучит грубо, поскольку я новичок в этом. Я протестировал то же самое на IE9, FF4, GC10, AS5 и Opera11, и это работает как по маслу. Однако из всех книг, которые я прочитал, и других учебных ресурсов, таких как CBT, я никогда не видел, чтобы это было сделано подобным образом, что заставляет меня думать, что я что-то упускаю. Просто хочу знать, почему это не может быть сделано подобным образом способом, аналогичным использованию связанных элементов <form>, не следует использовать для навигации.
2. @JAA, ну, во-первых, вы бы сделали 6 разных запросов к серверу, дважды увеличивая время в пути (на сервер и с сервера) для каждого запроса . Вашей странице также придется корректировать свой макет для каждого отдельного запроса . Это даже не касается сложности обслуживания этого кошмара приложения, потери закладок и т. Д
Ответ №2:
Вы описываете точный вариант использования для языка на стороне сервера.
Позвольте мне объяснить вам проблему с вашим подходом. Если вы создаете свой сайт таким образом, используя index.html
и другие 5 частей, которые вы включаете через object
или iframe
, это будет означать 6 запросов к вашему серверу (что, безусловно, не является хорошей практикой).
Все будет происходить следующим образом:
- Браузер запрашивает ваш
index.html
- Анализирует его и обнаруживает, что его также необходимо запросить
header.html
и четыре других - Запрашивает все эти 5 html’ов с сервера
Вместо этого вы могли бы просто запросить, index.php
например (если вы используете PHP), позволить PHP создать ОДИН 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. Спасибо, приятель. Я предполагаю, что это точная причина, по которой я не видел использования <object> для этой цели, и его не следует использовать таким образом. Приветствия
Ответ №3:
Вы также могли бы достичь цели, просто объединив разные части, что означает, что вы записываете свой заголовок в один файл, навигацию в другой и содержимое в третий файл, а затем объединяете их с реальными веб-страницами. (по сути, создание собственного движка шаблонов). Например (в UNIX)
cat header.html navigation.html body1.html > page1.html
Не идеальное решение, но таким образом вам нужно изменить только один раз. Но для чего-либо реального, обычно лучшим вариантом является уже предложенный серверный скрипт.
Ответ №4:
Если вы не хотите использовать программирование на стороне сервера (для чего оно и было создано, имейте в виду), ваш единственный выбор — это вызов AJAX для заполнения общих элементов во время выполнения.
Однако это не обеспечит очень хорошего пользовательского интерфейса, поскольку страница медленно загружается ПОСЛЕ того, как, казалось, завершила загрузку.
Для этого действительно следует использовать программирование на стороне сервера.
Комментарии:
1. Спасибо, приятель. Но это долгий процесс обучения, и я хочу изучить HTML / XHTML, прежде чем переходить к AJAX
Ответ №5:
Одним из распространенных решений является включение на стороне сервера (SSI), которое позволяет вам включать один блок html-разметки на нескольких страницах (среди прочего). Если вы используете PHP, обязательно учитывайте, что PHP включает в себя:http://www.w3schools.com/php/php_includes.asp.
Комментарии:
1. Спасибо, Эрик, теперь перейдем к SSI. Даже не знал, что это существует.