AJAX překreslení jenom pokud jsou data

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Hadi.k
Člen | 12
+
0
-

Je nějáká možnost, když po zavolání AJAXU

{snippet obsah}
{include obsah.latte}
{/snippet}
<a href="refresh! {$count}" class="ajax">Link</a>

se překreslí snippet jenom pokud je co prekreslovat ? Jde o to ze si posilam zpet pocet prispevku ktere se zobrazuji, pak si se podivam do dtb zda se neco zmenilo a pokud ano prekreslim tu stranku, kde teda budou videt i nové data, ale kdyz nebudou tak to chci nechat tak jak to je, a neposilat zadna data. Prostě aby v tom snippetu zutstlao to co tam bylo pred tim.

Ta metoda vypada takto:

public function handleRefreshChat($count) {
       $countDb = $this->model->getCount();
		if ($count != $countDb){
			$this->obsah = $this->model->getNews();

   	    if ($this->isAjax()) {
               $this->invalidateControl("obsah");
       	}
		}
   }

Problem je v tom ze kdyz se nesplni podminka, a nezavola se ta invalidace obsahu, tak se posle cela stranka nove vygenerovana. (bez refreshe), avsak to je horsi nez kdybych to nekontroloval, protoze timhle chci zabranit zbytecnemu trafficu.

Ano vím o WebSocketech, ale v mojí situaci použití není možné.

Všem děkuji za návrhy a řešení

japlavaren
Člen | 404
+
+1
-

co ak by si ukoncil presenter $this->terminaite(); len strielam, neviem ako na to zareaguje ajax

Hadi.k
Člen | 12
+
0
-

Díky, genialní řešení :) Funguje to :)

I kdyz si myslim ze toto reseni neni moc ciste, ale je funkcni.

Nenapadá někoho ještě nějáká alternativa, která by byla čistší ?

Editoval Hadi.k (9. 1. 2015 11:23)