Viikkotehtävä 6 ja DOM - Luento 14
Käsitellään viikkotehtävä 6 ja selvitellään DOM-esimerkkejä JavaScriptillä.
Luentotaltiointi
- sovellukset14.wmv 58M
- sovellukset14.mp3 17M
- sovellukset14_xvid.avi 142M
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ä kyselyä lajitauluun
- Elokuvat ja kaikki lajit 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ää :)
-
SQL-kyselyn valmistelun (prepare) ja sitomista (bind) ei kunnon
tietokannoissa tarvitsi tehdä silmukassa uudelleen.
Riittäisi muuttaa pelkästään sidottujen muuttujien arvoja ja
suorittaa
executeuudelleen. SQLite:ssä on kuitenkin ongelmia silmukassa suoritettavien kyselyjen suhteen, joten preparointi on tehtävä aina uudelleen. - 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 tarkemmin käsitellään luennolla 15.
Luennon 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