Jak na zpožděné překreslení snippetu?

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

Ahoj, snažím se udělat cool animace přes css3, kde se po kliknutí na ajax odkaz obsah stránky rozjede do všech stran a pak zase ten nový obsah přijede. Mám ale problém v tom, že mi ten „odjížděcí“ efekt nestačí doběhnout, response ze serveru dostanu moc brzo a animace se po chvilce ukončí.

Jde nějak zařídit, aby se ajax request, nebo update snippetů zdržel? Používám nette.ajax.js a setTimeout jsem cpal snad všude, ale bohužel bez úspěchu. Díky.

CZechBoY
Člen | 3608
+
0
-

Zkus použít nějaký promisy nebo tak něco, nejsem moc js guru.

matopeto
Člen | 395
+
0
-

Ja by som take cool efekty nerobil, len to zdrzuje (zbytocne) pouzivatela :) ak pride ajax rychlo bez efektu len dobre :)

David Matějka
Moderator | 6445
+
+2
-

mohlo by fungovat neco jako:

var snippetExt = $.nette.ext('snippets');
var origUpdateSnippets = snippetExt.updateSnippets;
snippetExt.updateSnippets = function (snippets, back) {
	window.setTimeout(function () {
		origUpdateSnippets(snippets, back);
	}, 1000)
};
CZechBoY
Člen | 3608
+
0
-

a teď už jen klasická otázka na magický konstanty – co je 1000? nějaký „bezpečný“ timeout kdy se předpokládá že určitě request doběhne?

matopeto
Člen | 395
+
0
-

toto je az po dobehnuti :) takze ajax dobehne, a pocka sa jedna sekunda kym sa to aplikuje…

forkman
Člen | 72
+
0
-

David Matějka napsal(a):

mohlo by fungovat neco jako:

var snippetExt = $.nette.ext('snippets');
var origUpdateSnippets = snippetExt.updateSnippets;
snippetExt.updateSnippets = function (snippets, back) {
	window.setTimeout(function () {
		origUpdateSnippets(snippets, back);
	}, 1000)
};

Dá se říct, že to funguje, ale skončí to na chybě:

Uncaught TypeError: this.getElement is not a function

Koukám na to jak puk, ale když jsem si dumpnul „this“ uvnitř originální funkce „updateSnippets“, tak je to objekt „window“, před tím zásahem to byl objekt $.nette

s JS nejsem moc kamarád, takže jsem to napsal doufám srozumitelně :-D

forkman
Člen | 72
+
0
-

Nakonec jsem použil Nittro, ale ty vestavěné tansitions mi nefungují a mám stejný problém. Po obdržení XHR response bych potřeboval nastavit nějaký timeout. Zkoušel jsem to v metodě teardown toho snippetu, ale to už je pozdě. Nevěděl by prosím někdo?