части HTML статические, другие динамические - PHP или HTML - лучший способ поиска в базе данных

0

Я создаю веб-сайт для продуктов. Мне интересно: лучше ли использовать одну динамическую страницу с помощью PHP или создавать HTML-страницу для каждого продукта, обновляя страницы из файла шаблона php в задании cron? Большинство материалов на странице (например, информация о базовых продуктах) со временем не изменятся, но другие части страницы будут созданы из поиска базы данных (инвентаризация, обзоры и т.д.).

Я слышал, как некоторые люди утверждают, что лучше использовать статический URL (например, category/product1.html) вместо динамических (например, product.php? id = 1234) для целей SEO. Проблема, которую я обнаружил с помощью прежнего метода, заключается в том, что неудобно выполнять поиск базы данных с HTML-страницы. Способ, которым я его реализовал, - использовать javascript- > php:

<script type="text/javascript" src="http://localhost/inv_lookup.php?UPC=<?php echo $UPC; ?>"></script>

Но тогда в файле PHP вам нужно напечатать текст в формате javascript:

    echo "document.write(\"" . $field . " : <b>" . $row[$i] . "</b> <br/> \")"; 

Этот вид поиска в БД кажется мне неаккуратным. Любые предложения?

  • 0
    прости меня за вопрос, но я не совсем уверен, о каких предложениях ты спрашиваешь. предложения о том, как идти о статических страницах? URL? поиск БД? Я, например, думаю, что вы спрашиваете предложения о том, как работать с URL-адресами страницы продукта, поэтому я думаю, что вы можете использовать красивые URL-адреса для этого, отредактировав свой htaccess вместо использования jscript для этого.
Теги:
dynamic

3 ответа

0

Предложения:

  • Действительно, хранение и обслуживание страницы в виде простого HTML очень эффективно.
  • В идеале не должно быть частичного URL-адреса, показывающего какой-либо язык или реализацию (нет .asp, no.php, no.cgi, no.html). Таким образом, вы можете переключаться по желанию, и каждая часть вашего URL-адреса находится в точке для просматриваемого вами ресурса. Посмотрите на apache mod_rewrite и т.д.
  • Как вы заметили, некоторые части более энергозависимы, чем другие, поэтому рекомендуется хранить "части" контента (основная навигация, описание продукта, обзоры) и т.д. отдельно.
  • Работы Cron, скорее всего, не собираются сокращать его. Когда кто-то изменяет цену в бэкэнд, интерфейс должен показать это как можно скорее. Создание перехватчиков для недействительности/воссоздания контента при изменении сделают вашу жизнь намного проще.
  • Скорее всего, вы по-прежнему хотите использовать сторонний php script на интерфейсе, который объединяет ваши отдельные кеши и, возможно, сможет создать часть html на лету, когда кеш недоступен.

В качестве окончательного предложения: я бы заглянул в то, какие основные платформы, решения CMS и eCommerce реализованы как кеш, есть много ошибок, которые вы можете сделать, и большинство из них уже решены.

0

1) Не обновляйте статические html-страницы cron и php. Это просто безумный разговор.

2) Используйте синтаксис heredoc, если вы хотите, чтобы более простая интерполяция переменных:

echo <<<EOF
  this is a {$row['0']} and a "$varable" for  you. oh yeah don't forget the '
EOF;
  • 0
    Что ж, создание более или менее статических страниц / частей является необходимостью для очень крупных веб-сайтов (те, кто даже имеет отдельные центры обработки данных для континентов / стран, например, подумайте о каталоге продуктов с сотнями тысяч продуктов для крупной фирмы по производству электроники), делая это. с кроной действительно очень глупо. Обновления должны быть просто отправлены на серверы.
0

Нет причин, по которым вы не можете сделать это как один .php файл. С помощью соответствующих правил mod_rewrite вы можете динамически переназначить example.com/products/1234 в example.com/product.php?id=1234 URL внутри.

И если вы действительно ненавидите публикацию PHP, вы всегда можете настроить веб-сервер для обработки файлов .html как PHP-скриптов (AddHandler php5-script .html).

Что касается печати "текста в формате javascript", проще использовать JSON для "форматирования" для вас:

<?php
    $product = array('name' => 'Deluxe Widget', 'id' => 1234);
?>
<script type="text/javascript">
    var product = <?php echo json_encode($product) ?>;
    document.write(product.name + ': <b>' + product.id + '</b><br />');
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню