nefunkční AJAX při sendResponse()
- vitush93
- Člen | 33
nazdar, mám následující problém a prosím o radu:
nefungují mi žádné AJAX requesty, pokud v BasePresenter je definována metoda sendResponse(), jež používám pro minifikaci výstupu:
public function sendResponse(Nette\Application\IResponse $response) {
parent::sendResponse(new \Nette\Application\Responses\TextResponse(Minify_HTML::minify((string) $response->getSource())));
}
Potřeboval bych to tedy zachránit nějak takto:
public function sendResponse(Nette\Application\IResponse $response) {
if($this->isAjax()){
//magic
}else{
parent::sendResponse(new \Nette\Application\Responses\TextResponse(Minify_HTML::minify((string) $response->getSource())));
}
}
Případně, nějak jinak. Díky za pomoc.
- Majkl578
- Moderator | 1364
Osobně si myslím, že řešit minifikaci v presenteru překrytím téhle metody je špatné. Měl by sis napsat vlastní response fungující podobně jako TextResponse, navíc ale minifikující výstup. Následně pak v presenteru používat tu tvoji response pro odeslání šablony. Konkrétně bys překryl metodu sendTemplate(), problém je, že v ní je dost nešikovně zadrátovaný i další kód. Pokud bys chtěl minifikovat i snippety, to by bylo ještě o něco horší, musel bys překrýt metodu sendPayload() a v ní minifikovat jednotlivé prvky pole snippets (pokud existuje).