Viikkotehtävä 6 ja DOM - Luento 14
Käsitellään viikkotehtävä 6 ja selvitellään DOM-esimerkkejä JavaScriptillä.
Luentotaltiointi
- sovellukset14.mp3 17M
- sovellukset14.wmv 51M
- sovellukset14.avi 218M
Viikkotehtävä 6
Tietokantoihin liittyvä viikkotehtävä:
Sekalaisia huomioita:
- Option-elementteihin kannattaa ottaa lajin id-arvo valueksi
- Uutta ID:tä ei tarvitse kehittää itse, se on tietokannan tehtävä (autoincrement)
- Tarkistakaa, että koodista tulee validia! Erityisesti sisäkkäinen lista on haasteellinen XHTML:ssä.
- SQLiten tietokantatiedoston ja sen sisältämän hakemiston oikeudet users.jyu.fi:ssä.
- SQL:n preparoinnin virheet on kysyttävä PDO-oliolta (
$dbh) ja SQL:n suorittamisessa tapahtuneet virheet PDOStatement-oliolta ($sql) - Tietokantasovelluksissa kannattaa pyrkiä minimoimaan tehtävien kyselyjen määrä ja valittava vain
tarvittavat
Esim.
- SELECT-lauseissa otettava vain ne kentät joita tarvitaan.
- Jokaista elokuvaa varten ei kannata tehdä erillistä kyselyä
- Elokuvat ja kaikki näyttelijät saa samaan kyselyyn LEFT OUTER JOIN -liitoksella.
- Useamman tietueen poistaminen voidaan tehdä yhdellä sql-lauseella, esim. DELETE FROM taulu WHERE tunniste IN ( 1, 2, 3 );.
- Päivityksessä kannattaa molemmat kentät päivittää samalla kertaa eikä eri kyselyissä.
- Poistojen ja päivitysten järjestys: Anna ensin kenkää poistettaville ja sitten käsittele vain ne jotka ovat muuttuneet. Poistettuja ei kannata luonnollisestikaan päivittää :)
- bindParamilla ei voi sijoittaa muuttujaa taulun tai kentän nimeksi. Sijoitus on siis tehtävä arvoksi.
- Tietokannan muutosoperaatioissa (lisäys, poisto, päivitys) ei pidä käyttää lomakkeella GET-metodia.
- Tietokantavirheitä sellaisenaan ei ole välttämättä järkevää näyttää käyttäjälle.
- Transaktiot
- Miksi PDO eikä
sqlite_funktio? Siksi että tietokanta voitaisiin vaihtaa helposti ja koodista tulee siirrettävämpää.
JavaScript- ja DOM-esimerkkejä
Esimerkeissä käytetään W3C:n DOM -spesifikaation metodeja ja attribuutteja, jotka toimivat Firefoxissa, mutta eivät välttämättä toimi IE:llä. Yhteensopivuus hoidetaan sopivalla JavaScript-kirjastolla, asiaa käsitellään tarkemmin luennolla 15.
- Dynaaminen lomakkeen luominen
- Sivun ulkoasun muuttaminen ( avautuva / sulkeutuva lista, värin muutos )
- Tapahtumankäsittelijät ( click, hover, blur, focus )
- Listan numerointi
- Elementtien poistaminen
- Ympäristö ( selainikkunan koko )
- Kaaviot ( flotr )
Edellisvuoden esimerkit:
Lisäesimerkkinä toimii myös viikkotehtävien pistelaskuri:
Huom.! DOM:ia voidaan käyttää myös muissakin ohjelmointikielissä, koska se on rajapinta rakenteisten dokumenttien käsittelylle. Esimerkiksi PHP:ssä on myös DOM-funktiot, näitä tarkastellaan luennolla 17

Käyttäjien kommentit