Создание новостной системы на основе AJAX

#php #ajax

#php #ajax

Вопрос:

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

         $newsArray = array();
        $result = News::getNews($database, 5);

        while($row = mysql_fetch_assoc($result))
              $newsArray[] = new News($row);

        foreach($newsArray as $news)
            echo $news->getMarkup($database);
  

Является ли это эффективным способом получения моих новостных сообщений? У меня есть файл, содержащий разметку моего фактического новостного сообщения, который называется newspost.html — и моя функция getMarkup () выглядит следующим образом:

     public function getMarkup($database) {

        $html = file_get_contents('include/html/newspost.html');

        $find = array("{ID}", "{TITLE}", "{CONTENT}", "{USERNAME}", "{TIME}");
        $replace = array($this->data['news_id'], $this->data['title'], $this->data['content'], $this->data['username'], $this->data['time']);

         for ($i = 0; $i < count($find);   $i) {
            $html = str_replace($find[$i], $replace[$i], $html);
         }

        return $html;
    }
  

очевидно, я не могу получить файл .php, поэтому мне пришлось создать собственное решение по добавлению конкретной новостной информации к каждому сообщению. Однако, я чувствую, что это очень неэффективно.

Я хотел бы получить несколько советов о том, как решить это более элегантным способом. Я не хочу встраивать свой код postnews непосредственно в мою функцию PHP, поскольку мне не нравится смешивать структуру и контент.

Обратная связь приветствуется!

Комментарии:

1. 1. я заметил, что вы перечитываете include/html/newspost.html для каждого отдельного элемента это ужасно.

Ответ №1:

1 быстрое исправление, перемещение $html = file_get_contents('include/html/newspost.html'); за getMarkup пределы функции.

и еще 1 идея, выполните обработку html на стороне клиента, просто отправьте необработанные данные post (json_encode) в ваш ajax-код, пусть ajax-код выполняет обработку.

Ответ №2:

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

Нам нужно рассказать, какое отношение к этому имеет AJAX, и неясно, о чем вы говорите в паре мест (например, «не удается получить файл PHP»).