Autor Zpráva
Anicka
Profil *
Dělám SW (webový), který z údajů vyplněných ve smlouvě pro povinné ručení (jméno, příjmení, IČ, RČ, druh vozidla...) vleze do DB ČKP a tam vyšťourá všechny smlouvy, které daný nositel bonusu měl (a má) a zobrazí je. Uživatel pak kliknutím vybírá, které z nich (ne)chce započítat na bonus/malus a SW okamžitě přepočte RD.

V současné době je to celé (kromě dotazu do DB ČKP) js a funguje to asi takhle:
1. Ve smlouvě POV se klikne na tlačítko pro zjištění RD.
2. Otevře se nové okno, do něj se načtou z DB ČKP všechny smlouvy daného nositele bonusu.
3. Uživatel klikne na checkbox u smlouvy.
4. Zavolá se onclick. Ten přechroupe zaškrtané údaje, provede výpočty a zobrazí započtenou RD pro danou smlouvu, přepočte celkovou započtenou RD, přebarví některá políčka grafu a naplní skrytá pole nutná pro předání do smlouvy.
5. Po kliknutí na tlačítko s předáním údajů do smlouvy se okno zavře a vyplněné údaje se ze skrytých polí vloží do smlouvy POV.

Graf je dělaný pomocí css - řádky jsou jednotlivé smlouvy, sloupce měsíce. Podle toho, zda je smlouva v daném měsíci platná, a zda je/není započtena na RD a zda jsou tam pojistné události má políčko příslušnou barvu, která se mu přiřazuje pomocí css, při výběru nějaké smlouvy se tedy mění barva vždy jen několika málo políček.

Problém je rychlost. V některých (bohužel i klientem oblíbených) prohlížečích je to dost pomalé zejména pro firmy, které mají třeba i několik desítek aut (pokud jich mají víc jak 100, tak spadne dotaz do DB ČKP - to je ale problém ČKP). Pravidla pro výpočet RD jsou totiž dost komplikovaná (započtená RD se nesmí překrývat, mezi započtenými smlouvami nesmí být větší mezera než 12 měsíců, jsou stanovená pravidla v jakém pořadí se překrývající smlouvy mají započítávat...) a js na takhle komplikované výpočty není stavěn.

Přemýšlím jak to zrychlit. Mohu kromě js použít i AJAX nebo php. Pokud to ale shodím na server, tak bych pak musela překreslit vždy celý graf? Mám strach, že kreslení vždy celého grafu znovu by mohlo trvat hodně dlouho. Nebyl by nějaký nápad, jak to napsat, aby to bylo co nejrychlejší?

Nechtějte po mně ukázku - vzhledem k tomu, že to leze do ostré DB ČKP, tak je to přístupné jen pro pojišťovací agenty.
Chamurappi
Profil
Reaguji na Anicku:
V některých (bohužel i klientem oblíbených) prohlížečích je to dost pomalé
Koukám, že se pečlivě vyhýbáš uvedení jakéhokoliv konkrétního údaje. Podepsala jsi klientům mlčenlivost, že nikde nevyzradíš jejich oblíbený prohlížeč?

Graf je dělaný pomocí css - řádky jsou jednotlivé smlouvy, sloupce měsíce.
Z toho jsem nevyčetl, jestli je dělaný pomocí CSS (a pozicovaných <div>ů) nebo pomocí tabulek (se špetkou obarvovacích stylů).

Pokud to ale shodím na server, tak bych pak musela překreslit vždy celý graf?
Asi ano. Těžko říct, když víme jen… víceméně nic.

Nebyl by nějaký nápad, jak to napsat, aby to bylo co nejrychlejší?
Pokud to děláš nejlépším možným způsobem, tak ne. Pokud to děláš hůře, tak to udělej lépe :-)

Nechtějte po mně ukázku
Nemůžeš přichystat živou ukázku, která by neobsahovala důvěrná data?
Nox
Profil
Pokud to ale shodím na server, tak bych pak musela překreslit vždy celý graf?
V závislosti na konkrétním problému - pokud je to možné, můžeš výsledky ukládat jako... z hlavy mě napadá třeba dát parametry do JSON formátu a zahashovat a podle toho pak taky budeš hledat soubor, když není, tak vygeneruješ. Případně tomu dát nějakou expiraci nebo při větších změnách tuto cache promazat

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0