2012-02-08 5 views
1

Как Stackoverflow повторно использует свой код, особенно верхний и нижний колонтитулы?PHP/HTML: повторное использование кода

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

Я использую HTML5, PHP и MySQL. Пока что javascript не задействован.

+1

Вы говорите о загрузке содержимого страницы, не обновляя всю страницу (ajax)? –

+1

да, но и повторное использование кода. я не хочу обновлять верхний/нижний колонтитул на каждой странице. Я не использую Ajax на данный момент. Создание моего сайта целиком в css и html (и php). я обязательно добавлю несколько javascript позже. моя мысль заключается в том, что сайт должен работать без javascript ... – user1163859

+2

+1 для прогрессивного подхода к повышению, @ user1163859 – vzwick

ответ

3

При отсутствии рамок какой вовлеченными, попробовать что-то вдоль этих линий:

<?php 

include('header.php'); 

// do something, render page specific content ... 

include('footer.php'); 
+0

Hm, делает ли это html, расположенный в header.php/footer.php? или просто php? – user1163859

+0

'include()' делает именно то, на что это похоже - он вставляет указанный файл php и выполняет его. [Документация здесь] (http://www.php.net/manual/en/function.include.php). Итак, да, он также отображает HTML. – vzwick

0

Ajax это технология для перезагрузки только отдельных див, а не вся страница: Ajax

+0

Нет AJAX, используемого в примере OP – vzwick

0

я не знаю, если его можно с HTML5, но я использую AJAX и JQuery для динамического сайта/контента обновления

Документация Jquery, чтобы найти в http://docs.jquery.com/Main_Page и для JqueryUI на http://jqueryui.com/demos/

здесь является простым JQuery/AJAX фрагмента кода

$.ajax({ 
    beforeSend:function() { 
     $("#loader").show(); 
    }, 
    url:your/path/file.php, 
    method:"get", 
    data:{rights:usrRights,rights2:usrRights2}, 
    dataType:"html", 
    success:function(output) { 
     $("#content").html(output); 
    }, 
    complete: function() { 
     $("#loader").fadeOut("slow"); 
    } 
}); 

включал погрузчик DIV с накладкой и по умолчанию его скрытый в DIV я поставил .gif загрузчик изображения

надежда я мог бы вам помочь

рассматривает

+0

Нет AJAX, используемого в примере OP – vzwick

1

, как они делают это, разделяя все статического контента (тот, который не будет меняться между страницами) в отдельные файлы. Затем они включают их по требованию, как отметил @vzwick.

Следует сказать, что они загружены. SO не использует AJAX для загрузки только определенных частей страницы для целей компоновки. Части заголовка и нижнего колонтитула кэшируются между вызовами сервера и, кажется, загружаются почти мгновенно.

Это принцип, на котором работают большинство языков веб-скриптинга.

+0

Итак, преимущество заключается в том, что его более чистый способ кодирования, поскольку мне нужно будет только обновить верхний/нижний колонтитул один раз. Но, это не обязательно делает мой сайт быстрее ... правильно? – user1163859

+0

Коэффициент усиления зависит от количества кодирования, которое вы должны выполнить, и от поддерживаемости вашего кода;) – vzwick

+1

Если вы не используете какой-то механизм кэширования PHP для кэширования анализируемого PHP, то нет, не будет увеличения скорости , То, что сделает ваш сайт быстрее, позволит броузеру кэшировать css и javascript. Кроме того, gzip'ing на странице очень поможет. –

Смежные вопросы