Nittro a refresh snippetu po určité době
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- sinuhet
 - Člen | 1
 
Zdravím,
zkouším Nittro a nevím si rady jak pomocí javascriptu obnovovat po nějaké
době snippet. Pomocí nette.ajax.js mi fungoval tento script
`
<script>
    $(function(){
      $.nette.init();
        setTimeout(function(){ get_data();}, 10000);
        function get_data(){
            $.nette.ajax({
                url: "?do=refreshData",
                complete: function (payload) {
                    setTimeout(function(){ get_data();}, 10000);
                }
            });
        }
    });
</script>
`

- denny
 - Člen | 3
 
Zdravím, také zápasím se stejným problémem. Vůbec nevím, jestli na to jdu dobře. Prozatím mám:
<script>
_context.invoke(function(di) {
    di.getService('snippetManager').on('after-update', function(e) {
		setTimeout(function(){
			...
		}, 60000)
    });
});
</script>
Teoreticky bych mohl zavolat metodu
di.getService('ajax').get(...)
ale ta mi překreslí celou stránku. Co kdybych potřeboval překreslit, jen např. snippet information?
Díky. moc

- teekey99
 - Člen | 45
 
Vytvoř si v presenteru handle, který bude snippet překreslovat. Např.:
public function handleRedrawMySnippet()
{
	if ($this->isAjax()) {
		$this->redrawControl('mySnippet');
	}
}
A potom v šabloně
<script>
	_context.invoke(function(di) {
		var page = di.getService('page');
    	setInterval(function() {
			page.open({link redrawMySnippet!});
		}, 10000);
	});
</script>
Ještě by bylo dobrý ten interval někam ukládat a ošetřit jeho clearování, když snippet ze stránky mizí ;)

- nightfish
 - Člen | 528
 
motorcb napsal(a):
Kde v JS vemu proměnnou _context ????
Tu poskytne Nittro (konkrétně Nittro/Core).

- nightfish
 - Člen | 528
 
Kompletní info najdeš v návodu
Ve zkratce:
- stáhneš Nittro a dáš jej někam do 
document_rootu - do layoutu přidáš
 
<link rel="stylesheet" type="text/css" href="path/to/nittro.min.css" />
<script type="application/javascript" src="path/to/nittro.min.js" async defer></script>
- a nainstaluješ Nette bridge přes composer:
	
composer require nittro/nette-bridges