Urýchlenie inicializácie ajax odkazov
- romiix.org
- Člen | 343
Neviem si dať rady s ajaxifikáciou odkazov načítaných v modálnom okne. Používam nette.ajax.js.
Na webe mám použitú komponentu pre vykreslovanie modálnych okien.
Zdroj modálneho okna sa načíta z data atribútu buttonu.
var initDataModal = function () {
$('*[data-modal]').off();
$('*[data-modal]').on('click', function(event) {
$.nette.ajax({
url: $(event.target).data('modal'),
success: function (result) {
BootstrapDialog.show({
title: '',
type: BootstrapDialog.TYPE_DANGER,
message: $('<div></div>').html(result)
});
}
});
});
}
$.nette.ext('initDataModal', {
init: initDataModal,
complete: initDataModal
});
Do modálneho okna načítava komoponenta s tabmi. Prekliky medzi tabmi mám riešené ajaxovo – tzn. kliknutím na signál komponenta rozpozná, že má prekresliť snippet a vrátiť iný tab.
Potiaľ všetko funguje bez problémov.
Problém je, že odkazy na taboch s triedou ajax
začnú
reagovať ajaxovo až po pár sekundách (2–3) a nie ihneď. Tzn. kliknem na
zobrazenie modálneho okna, zobrazí sa, kliknem na zmenu tabu a načíta sa mi
obsah nového tabu normálne ako text/html
a nevráti sa mi
snippet. Pri rýchlom prekliku ešte nie sú inicializované ajax odkazy. Ak
počkám pár sekúnd, všetko funguje ako má.
Dá sa inicializácia odkazov nejak urýchliť/vynútiť okamžite po načítaní modálneho okna?
Vďaka!
- romiix.org
- Člen | 343
CZechBoY napsal(a):
A nemáš jen pomalej skript?
To má znamenať čo? :) Resp. ako sa to dá riešiť? JS je na stránke žiaľ dosť. Ide o veľmi rozsiahlu aplikáciu.
Napadlo mi nahradiť <a>
za
<span data-href="{link!}" class="btn">
a následne na týchto
elementoch aktivovať ajax prekilky.
Prípadne, nejaký lepší nápad?
- romiix.org
- Člen | 343
CZechBoY napsal(a):
Jakože odpověď serveru (php skript).
Ani v tom nebude problém. Odpoveď je od 150 ms.
- romiix.org
- Člen | 343
Vlastne som zistil, že aktivovanie ajaxových dotazov bolo závislé od
cyklického načítavania noviniek (jeden refresh dotaz každých 5 sekúnd).
Ak som toto cyklické načítavanie zakázal, novo načítané
.ajax
odkazy sa vôbec neaktivovali.
Tzn. načítavanie obsahu do modálneho okna cez JS
$.nette.ajax({
url: $(event.target).data('modal'),
success: function (result) {
BootstrapDialog.show({
title: '',
type: BootstrapDialog.TYPE_DANGER,
message: $('<div></div>').html(result)
});
}
});
nespúšťa nette.ajax rozšírenia. To som nevedel :)