Autor Zpráva
Novosad1351
Profil *
Ahoj,
používám Bootstrap 5 + jQuery spolu s grafy HighCharts a potřebuji pomoci. Používám TABS pro zobrazování různého obsahu včetně grafů, které načítají obsah z mySQL a zjistil jsem, že jakmile se webová stránka načte, tak to načítá všechno včetně TABS obsahu součásně. Zátěž na mySQL je v tuto chvíli větší.

Nešlo by nějak udělat, aby načtení obsahu v TABS fungovalo až s výběrem samotného TABS? Tj. kliknu na TABS okno jiné a teprve se načte jeho obsah. Zatím mám jen 3 TABS záložky, ale plánuji jich tam mít až 6.

Hrozně moc děkuji za výpomoc. Vůbec nevím, jak bych to zhruba řešil. Případně, zda-li je jiné řešení než TABS, rád si nechám poradit.
blaaablaaa
Profil
Novosad1351:
Pokud jsou tabs z bootstrapu a není to nějaká součást HighCharts, tak stačí k odkazu v tabech přidat třeba data-id="XXX", odchytit event show.bs.tab, ověřit, zda už graf pro daný tab není vytvořen a pokud ne, ajaxem si požádat o data ze serveru podle data-id a vygenerovat graf.
Novosad1351
Profil *
Moc děkuji. Ať nezakládám nové téma. Neporadíte, jak získávat data z URL adresy zobrazené v "příkazovém řádku" prohlížeče + jak data tam poslat pro zobrazení bez nutnosti dělat reload?
Keeehi
Profil
Novosad1351:
Neporadíte, jak získávat data z URL adresy
window.location.href

jak data tam poslat pro zobrazení bez nutnosti dělat reload
Buď to budeš dávat za část s #. Což bude asi trochu jednodušší.
Nebo to můžeš měnit skrz History.pushState()
Novosad1351
Profil *
Zkouším hash, který bude nejlepší. Snažím se získat jednotlivé data bez # na začátku pomocí regex, ale console vypíše pouze první dvě a zbytek je undefined.
Přesněji console vypíše:
#tereza_new
tereza_new
undefined
undefined

Neporadíte proč? Já už nevím, došli nápady :)

example.com/#tereza_new|one|2021-11-26
    var GetHash = window.location.hash;
    var regex = /#([A-Za-z0-9_]+)|([a-zA-Z]+)|([0-9]+(-[0-9]+)+)/;
    if(regex.test(GetHash)){
        var HashEx = regex.exec(GetHash);
        console.log(HashEx[0]);
        console.log(HashEx[1]);
        console.log(HashEx[2]);
        console.log(HashEx[3]);
        //time = timeEx[2]+'-'+timeEx[3]+'-'+timeEx[4]+' '+timeEx[5]+':'+timeEx[6];
    }
Keeehi
Profil
Novosad1351:
Já to vím docela přesně. Znak | má v regexpu speciální význam. Znamená nebo. To co jsi vlastně zapsal je (první skupina) nebo (druhá skupina) nebo (třetí skupina). Ty sis ale zvolil tento znak v url jako oddělovač a v regexpu ho chceš použít jako obyčejný znak. Musíš ho tedy escapovat. (Stačí v regexpu před něj dát zpětné lomítko)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0