Nic nie stoi na przeszkodzie, aby ten sam handler eventu został odpalony więcej niż raz. Zwykle będzie to z powodu wielokrotnego podpięcia do eventu. Jeden ze sposobów na takie wielokrotne podpięcie jest załadowanie tego samego pliku js w więcej niż jednym miejscu na stronie. Jeśli więc handler eventu document.ready odpala się więcej niż raz, warto sprawdzić, czy plik, w którym jest rejestrowany, nie został załadowany dwa razy.
W Zend Framework może to być całkiem łatwe do doprowadzenia. Do dodawania skryptów do strony istnieje viewHelper o nazwie headScript. Można powiedzieć, że jest to kontener skryptów. Aby z tego kontenera skorzystać wystarczy dodać do niego plik. Gdzieś jednak te wszystkie pliki trzeba wykorzystac. Tu może pojawić się problem. Prawidłowo byłoby w layout dodać wywołanie:
<?= $this->headScript(); ?>Powyższa linia kodu spowoduje wypisanie w tym miejscu wszystkich skryptów z kontenera. Może się jednak zdarzyć, że ktoś nie wie jak tego helpera użyć i będzie go używał inaczej. Możemy wtedy w kodzie znaleźć coś takiego:
<?= $this->headScript()->appendFile('scripts/js/cokolwiek.js'); ?>Takie wywołanie powoduje dołączenie skryptów z headScript właśnie w tym miejscu. Może to łatwo doprowadzić do tego, że będą one dołączone zarówno w layocie jak i w samym widoku. To jest całkiem prosta metoda na wielokrotne dołączanie skryptu.
Brak komentarzy:
Prześlij komentarz