Подходы и рекомендации по кодированию одной и той же навигации (w3.css) на разных страницах [duplicate]

Почему функции возвращают значения согласованного типа? Для соблюдения следующих двух правил:

Правило 1 - функция имеет «тип» - входы, отображаемые на выходы. Он должен возвращать согласованный тип результата, или он не является функцией. Это беспорядок.

Математически мы говорим, что некоторая функция F является отображением из области D в диапазон R. F: D - & gt; R . Область и диапазон образуют «тип» функции. Типы ввода и тип результата столь же важны для определения функции, как имя или тело.

Правило 2 - когда у вас есть «проблема» или не удается вернуть правильный результат , вызывать исключение.

  def x (foo): if 'bar' в foo: return (foo, 'bar') raise Exception ("oh, dear me.")  

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

«Не было бы дешевле памяти мудрый, чтобы вернуть Нет? Неверный вопрос.

Точка not предназначена для оптимизации памяти за счет ясного, понятного и очевидного кода.

8
задан ctekk 27 February 2012 в 16:28
поделиться

3 ответа

Вообще говоря:

Визуально

CSS . Существует множество методов для укладки контента (в зависимости от точного эффекта, который вы хотите, Holy Grail является общим желанием).

Свойства overflow обрабатывают прокрутки подсекций страниц, хотя дизайнеры, которые думают, что имеют меню, использующее экранное пространство все время , хорошая идея, как правило, неправильна.

Избегайте дублирования метаконтента

(т. е. накладывайте на на странице такие вещи, как базовая структура, меню навигации и т. д. без копирования / вставка их)

Система шаблонов (или система включения), которая либо работает на стороне сервера (чаще всего), либо во время сборки (которая может поддерживать HTTP-серверы, которые разрешают только статические файлы).

Язык, в котором это реализовано, не имеет значения, PHP так же распространен, как гадость, Java - это вариант, я склонен к Perl (а точнее: Template Toolkit ), есть много других. JavaScript становится все более популярным для этого типа работы, при этом инструменты, такие как собирают , становятся доступными. Вы можете полностью использовать статический генератор сайта .

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

Загрузка нового контента без выхода из страницы

JavaScript, обычно с объектом XMLHttpRequest (метод, известный как Ajax), и (если вы делаете серьезные изменения содержимого) в сочетании с History API (так что закладок и ссылок все еще работает). Гитуб - хороший пример этого . Существуют различные рамки, такие как React и Angular , которые пытаются облегчить ситуацию. Обратите внимание на ограниченную поддержку браузера и все другие вещи, которые могут вызвать JS-файл, с использованием хороших принципов дизайна . Один из подходов к тому, чтобы сделать эти вещи прочными, - написать изоморфный JS .

14
ответ дан Quentin 15 August 2018 в 23:07
поделиться
  • 1
    Как изменить прошлый & quot; контент-кадр & quot; стороны и затем покинуть «навигационный кадр». как это, без написания дублирующего кода? Я все еще вижу веб-сайты в настоящее время с этими двумя компонентами (возможно, для этого есть другие слова) – ctekk 27 February 2012 в 16:23
  • 2
    @Coretek - обычно используется система шаблонов. Этот является вершиной Google (для земли Java). Обычно я использую TT – Quentin 27 February 2012 в 16:29
  • 3
    @Coretek. Возможно, Oracle поддерживает язык шаблонов Java, я понятия не имею. Избегая библиотек, написанных людьми, тогда поставщик языка обычно не является полезной целью. – Quentin 27 February 2012 в 16:38
  • 4
    @Coretek - PHP - (возможно) язык шаблонов (хотя я бы посмотрел на использование лучшего с ним, если бы мне пришлось использовать PHP (Smarty был пчелиными колени в последний раз, когда я серьезно смотрел PHP ... десять лет назад)). Не избегайте использования стороннего кода только для того, чтобы быть «lean & quot; - вы либо в конце концов напишите что-то, что делает ту же работу (но не так хорошо, и с гораздо большими инвестициями вашего времени), или вы обнаружите другую неэффективность. – Quentin 28 February 2012 в 15:12
  • 5
    JavaEE относительно сложна. PHP дешев и прост. Таким образом, вы получаете множество дешевых хостов, поддерживающих PHP. Как только вы набрали хороший хостинг, вы получите гораздо больше выбора. Пойдите для виртуальной машины, и вы можете установить все, что захотите. – Quentin 28 February 2012 в 15:36

Фреймы не заменяются новой «технологией». Современное состояние заключается в том, чтобы поместить весь контент в один и тот же документ и создать его с помощью CSS. Конечно, серверная часть может помочь вам в этом.

4
ответ дан YMMD 15 August 2018 в 23:07
поделиться

Используйте позиционирование CSS для создания фреймоподобного интерфейса и AJAX для изменения содержимого контейнера. Вы можете использовать JavaScript-фреймворки, такие как jQuery , Prototype или MooTools для обработки запросов AJAX.

Однако, если вы хотите включая контент из другого домена, вы должны использовать <iframe>, так как AJAX следует за той же политикой происхождения .

Если вы хотите написать DRY (не повторяйте себя), вы может использовать какую-то систему шаблонов (PHP, Ruby, Pearl, Python - и, конечно, фреймворк для этих языков).

2
ответ дан Zeta 15 August 2018 в 23:07
поделиться