Запись запроса в контроллер вместо модели - PullRequest
0 голосов
/ 27 июня 2019

Я хочу спросить, пишем ли мы запрос в контроллере вместо модели.это имеет какое-либо влияние?такие как данные загрузки становятся медленнее или другие?

данные, которые я хочу использовать, превышают 1000.

, если нет, что замедляет загрузку данных в сети.

например, запрос ajax требуется 4-5 секунд, а некоторые - до 1 минуты

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Я работаю с CodeIgniter в течение нескольких лет, и я понял, как правильно выполнять ваши запросы в моделях.

Идея MVC заключается в разделении кода, когда M (модель) обрабатывает или выполняет тяжелую работу приложения, которое в основном относится к базам данных, V (представление) представляет презентацию, в которой пользователи системы взаимодействуют. с приложением и C (контроллером) выступает в качестве посредника или посредника между моделью и представлением.

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

Я всегда использую (я называю это маленькой магией) {elapsed_time} и {memory_usage}, чтобы проверить, как работает мое приложение в соответствии с любой логикой, которую я реализую, вы можете попробовать.

Я думаю, что это помогает.

0 голосов
/ 27 июня 2019

Практически нет разницы между выполнением запроса в контроллере или модели, за исключением небольшого (незначительного) объема служебной информации, которую добавляет модель (если бы это был я, я бы об этом не беспокоился). Если вы хотите придерживаться шаблона проектирования MVC, запросы к базе данных обычно выполняются в модели, а не в контроллере. Но это больше стилистическая вещь в CodeIgniter, поскольку она не строго соблюдается, как в других средах, использующих ORM.

С учетом вышесказанного, если вы испытываете длительное время выполнения, я бы рекомендовал не получать все данные сразу, а вместо этого использовать load more, нумерацию страниц, таблицы данных или аналогичную систему, чтобы уменьшить количество записей, выбранных за один раз, до что-то более управляемое в зависимости от вашего приемлемого времени выполнения / ответа.

Вы можете проверить, что лучше всего работает в вашей ситуации, установив контрольные точки: https://www.codeigniter.com/user_guide/libraries/benchmark.html

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