Создание системы новостей на основе AJAX - PullRequest
2 голосов
/ 23 мая 2011

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

        $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, поэтому мне пришлось самому решить, добавлять ли конкретную новостную информацию в каждый пост. Тем не менее, я чувствую, что это очень неэффективно.

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

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

Ответы [ 2 ]

1 голос
/ 23 мая 2011

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

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

0 голосов
/ 23 мая 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...