Nittro a refresh snippetu po určité době
- 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 | 517
motorcb napsal(a):
Kde v JS vemu proměnnou _context ????
Tu poskytne Nittro (konkrétně Nittro/Core).
- nightfish
- Člen | 517
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