Ik wil graag kunnen zien hoe bezoekers in het algemeen door mijn site klikken. Omdat ik de omvang van de database laag wil houden, wil ik niet van elke bezoeker apart alle stappen opslaan. Als oplossing heb ik de volgende tabel (stats_map) bedacht:
Bij elke klik haal ik de huidige pagina en de referrer op via javascript. Ik kijk of deze stap (bv. van /contact naar /contact/sam) al bestaat. Zo ja, dan hoog ik count met 1 op. Anders maak ik een nieuwe record aan met count 1. De bedoeling is om deze informatie daarna op te halen en grafisch weer te geven, bijvoorbeeld:
Ik probeer in mijn hoofd te krijgen hoe ik mbv php dit kan bewerkstelligen. Ik moet met een aantal zaken rekening houden om te zorgen dat de output enigzins leesbaar is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| +----------------------+------------------------+-------+ | from | to | count | +----------------------+------------------------+-------+ | / | /about | 150 | | / | /contact | 50 | | / | /producten | 200 | | /about | /about/bas | 80 | | /about | /about/karin | 30 | | /about | /contact | 25 | | /about | /about/pim | 2 | | /about | /about/sam | 3 | | /producten | /producten/groenten | 140 | | /producten | /producten/fruit | 60 | | /producten/groenten | /producten/groenten/aa | 100 | | /producten/groenten | /producten | 20 | | /contact | /about | 10 | | /contact | / | 40 | +----------------------+------------------------+-------+ |
Bij elke klik haal ik de huidige pagina en de referrer op via javascript. Ik kijk of deze stap (bv. van /contact naar /contact/sam) al bestaat. Zo ja, dan hoog ik count met 1 op. Anders maak ik een nieuwe record aan met count 1. De bedoeling is om deze informatie daarna op te halen en grafisch weer te geven, bijvoorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| +- bas 80 | +- about 150 -+- karin 30 | | | +- contact 25 | | | +- rest 5 | +- aa 100 | | | +- groenten 140 -+- producten 20 | | | / 500 -+- producten 200 -+- fruit 60 +- rest 20 | | +- about 10 | | +- contact 50 -+- / 40 | +- rest 100 |
Ik probeer in mijn hoofd te krijgen hoe ik mbv php dit kan bewerkstelligen. Ik moet met een aantal zaken rekening houden om te zorgen dat de output enigzins leesbaar is:
- neem "about" als voorbeeld. Vanaf deze pagina gaan er kliks naar 5 andere pagina's. De top-3 van kliks gaan naar /about/bas (80), /about/karin (30) en /contact (25). De andere stappen (naar /contact en /about/pim) hebben slechts resp. 2 en 3 kliks gekregen. Ik vat deze samen onder de node "rest (5)". In de uiteindelijke code wil ik kunnen instellen welke top van stappen moet worden weergegeven. De rest moet worden samengevat
- waar ik nog niet uit ben ik de breedte van de boom. Nu is de breedste tak 3 stappen (bijvoorbeeld / -> producten -> groenten -> aa). Misschien moet ik het een optie maken om de breedte in te kunnen stellen, bijvoorbeeld maximaal 10 stappen
- hoe ga ik dit grafisch weergeven? In een textarea zodat het er net uit ziet als hierboven (vind ik opzich erg prettig lezen). Ook HTML (tabellen) is een optie. Of misschien een flash-filmpje of java applet (welke?!)
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."