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

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

Я слышал, как некоторые люди утверждали, что для целей SEO лучше иметь статические URL-адреса (например, category / product1.html), а не динамические (например, products.php? Id = 1234). Проблема, которую я обнаружил в первом методе, заключается в том, что поиск в базе данных на 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/> \")"; 

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

Ответы [ 3 ]

0 голосов
/ 14 сентября 2010

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 голосов
/ 14 сентября 2010

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

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

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

0 голосов
/ 14 сентября 2010

Нет причин, по которым вы не можете сделать это как один файл .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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...