Naja - odstranění ajaxových requestů z historie

Ve výchozím nastavení se každý request odeslaný a zpracovaný knihovnou Naja přidá do historie a při kroku zpět vidíte předchozí hodnoty. To se někdy hodí a někdy ne. Pokud chcete tomuto chování zabránit, stačí vám k prvkům s třídou ajax přidat tento kód:

data-naja-history="replace"

Typickým příkladem, kdy se to nehodí, je změna kusů v košíku, kdy by stránka mohla ukazovat předchozí hodnotu, tj. jinou, než je aktuálně někde uložená v session nebo databázi.

Celý příklad

HomepagePresen­ter.php

<?php

declare(strict_types=1);

namespace App\Presenters;

use Nette;


final class HomepagePresenter extends Nette\Application\UI\Presenter
{

    public function renderDefault(){
        $this->template->text = Nette\Utils\Random::generate(5);
    }

    public function handleGeneruj(){
        $this->redrawControl('nahoda');
    }

}

Homepage/defau­lt.latte

{block content}

<h1>Náhodně generovaný řetězec</h1>

{snippet nahoda}
    <div>{$text}</div>
{/snippet}

<!-- tento kód odstraní request z historie -->
<a data-naja-history="replace" class="ajax" n:href="generuj!">Vygeneruj jiný řetězec</a>

<script src="https://unpkg.com/naja@2/dist/Naja.min.js"></script>

<script>
    naja.initialize();
</script>