Pomalé načítání kvůli připojení k databázi
- mrtnzlml
- Člen | 140
Ahoj, myslím si, že to jak postupuji je správně, ale přesto to sem
napíšu, aspoň si to ověřím.
Napřed však problém. Pokud načítám homepage stránku, vše je rychlé,
přesně tak, jak má být. Pokud však načítám nějakou podstránku, nastane
rychlostní problém. Dočetl jsem se, že za to může PDO, už někomu také
načítání trvalo přibližně 1300ms, ale vždy se to vyřešilo souborem
hosts a 127.0.0.1-localhost. To ale není můj problém. Postupuji
následovně:
<?php
class SitePresenter extends BasePresenter {
private $faq;
function __construct(\Model\Faq $faq) {
$this->faq = $faq;
}
public function renderPodpora() {
$this->template->faq = $this->faq->getAllFaq();
}
//...
?>
Tento presenter ovládá několik jednoduchých podstránek. Vzhledem k tomu, že budu potřebovat přistupovat k FAQ, předám si ho v konstruktoru. Model potom vypadá takto:
<?php
class Faq extends Nette\Object {
private $database;
public function __construct(Nette\Database\Connection $database) {
$this->database = $database;
}
?>
Konfiguráky jsou potom:
<?php
services:
//...
- Model\Faq
//...
?>
a
<?php
nette:
database:
dsn: 'mysql:host=localhost;dbname=dbname'
user: root
password:
?>
Problém je v tom, že pokud generuji třeba stránku informací, tak se v debug panelu zobrazí „0 queries“ a musím čekat tich 1300ms, kvůli tomu konstruktoru. Pokud můj postup není vyloženě blbě, tak by mě zajímalo jak to ošéfovat, protože čekat na PDO takovou dobu je blbé, zvlášť když ho nepotřebuji. Daleko horší je, že musím čekat takovou dobu i když ho potřebuji, ale domnívám se, že ten čas je zbytečně velký. Minimálně když jsem nepoužíval Nette\Database, tak v tom problém nebyl…
Díky za pomoc!