PHP « Ускорение выполнения ajax операций в php framework'ах.
Есть какие нибудь способы ускорить выполнение ajax событий и обойты выполнение всех ненужных действий системы?
1 ответов
Так как ТС использует Zend Framework, то поясняю. Для обработки специфических запросов в ZF есть понятие контекста. Так вот для конкретно Ajax запросов используется AjaxContext.
Итак:
class Admin_UsersController extends Zend_Controller_Action {
const USERS_PER_PAGE = 20;
public $ajaxable = array(
'list' => true
);
public function init() {
$this->_helper->getHelper('AjaxContext')->initContext('json');
}
public function listAction() {
$this->view->users = $this->_model->getUsers();
}
}
после этого если запрос передан обычным способом, то будет подключаться View и Layout, а если AJAX - то содержимое View просто закодируется в JSON.
Само никогда нигде ничего не происходит. если Вы вызыаете "куча классов и методов как при обычном построении страницы. Т.е. тратится куча ресурсов чтоб обработать запрос (пре диспатчеризация, диспатчеризация, пост диспатчеризация... куча плагинов, закрузка и выполнение ресурсов...) чтоб вставить 1 строку в базу и вывести {status: 1}" и больше не хотите такое вызывать, то не вызывайте. Ведь Вы автор программы? А если так, то никто кроме Вас не несет ответственности за то, как она работает и что в ней вызывается.
По большому счёту почти всегда через ajax требуется вернуть какую-либо информацию из базы данных, доступ к которой осуществляется как раз через классы freamwork'a, так что вряд ли удастся обойти это ограничение.
С другой стороны если выполняется просто какая-то функция, не взаимодействующая с БД, то можно создать файл, отдельно от framework'a, и обращаться ajax'ом к нему.