|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "947ca5ce7c94aee9c7de7034e762bc17",
|
|
|
"translation_date": "2025-10-23T00:29:10+00:00",
|
|
|
"source_file": "3-terrarium/3-intro-to-DOM-and-closures/assignment.md",
|
|
|
"language_code": "fi"
|
|
|
}
|
|
|
-->
|
|
|
# DOM-elementtien tutkimustehtävä
|
|
|
|
|
|
## Yleiskatsaus
|
|
|
|
|
|
Nyt kun olet itse kokenut DOM-manipulaation voiman, on aika tutkia laajemmin DOM-rajapintojen maailmaa. Tämä tehtävä syventää ymmärrystäsi siitä, miten eri verkkoteknologiat vuorovaikuttavat DOM:n kanssa pelkän elementtien siirtelyn lisäksi.
|
|
|
|
|
|
## Oppimistavoitteet
|
|
|
|
|
|
Tämän tehtävän suorittamalla:
|
|
|
- **Tutkit** ja ymmärrät tietyn DOM-rajapinnan syvällisesti
|
|
|
- **Analysoit** DOM-manipulaation todellisia toteutuksia
|
|
|
- **Yhdistät** teoreettiset käsitteet käytännön sovelluksiin
|
|
|
- **Kehität** taitoja teknisessä dokumentoinnissa ja analysoinnissa
|
|
|
|
|
|
## Ohjeet
|
|
|
|
|
|
### Vaihe 1: Valitse DOM-rajapinta
|
|
|
|
|
|
Vieraile MDN:n kattavassa [DOM-rajapintojen listassa](https://developer.mozilla.org/docs/Web/API/Document_Object_Model) ja valitse rajapinta, joka kiinnostaa sinua. Harkitse valintaa näistä kategorioista monipuolisuuden vuoksi:
|
|
|
|
|
|
**Aloittelijaystävälliset vaihtoehdot:**
|
|
|
- `Element.classList` - CSS-luokkien dynaaminen hallinta
|
|
|
- `Document.querySelector()` - Edistynyt elementtien valinta
|
|
|
- `Element.addEventListener()` - Tapahtumien käsittely osoitintapahtumien ulkopuolella
|
|
|
- `Window.localStorage` - Asiakaspuolen datan tallennus
|
|
|
|
|
|
**Keskitasoiset haasteet:**
|
|
|
- `Intersection Observer API` - Elementtien näkyvyyden havaitseminen
|
|
|
- `MutationObserver` - DOM-muutosten tarkkailu
|
|
|
- `Drag and Drop API` - Vaihtoehto osoitinpohjaiselle lähestymistavalle
|
|
|
- `Geolocation API` - Käyttäjän sijainnin käyttö
|
|
|
|
|
|
**Edistynyt tutkimus:**
|
|
|
- `Web Components` - Mukautetut elementit ja shadow DOM
|
|
|
- `Canvas API` - Ohjelmallinen grafiikka
|
|
|
- `Web Workers` - Taustaprosessointi
|
|
|
- `Service Workers` - Offline-toiminnallisuus
|
|
|
|
|
|
### Vaihe 2: Tutki ja dokumentoi
|
|
|
|
|
|
Luo kattava analyysi (300–500 sanaa), joka sisältää:
|
|
|
|
|
|
#### Tekninen yleiskatsaus
|
|
|
- **Määrittele**, mitä valitsemasi rajapinta tekee selkeällä ja aloittelijaystävällisellä kielellä
|
|
|
- **Selitä** sen tarjoamat keskeiset metodit, ominaisuudet tai tapahtumat
|
|
|
- **Kuvaile**, millaisia ongelmia se on suunniteltu ratkaisemaan
|
|
|
|
|
|
#### Todellinen toteutus
|
|
|
- **Etsi** verkkosivusto, joka käyttää valitsemaasi rajapintaa (tutki koodia tai etsi esimerkkejä)
|
|
|
- **Dokumentoi** kyseinen toteutus koodiesimerkeillä, jos mahdollista
|
|
|
- **Analysoi**, miksi kehittäjät valitsivat tämän lähestymistavan
|
|
|
- **Selitä**, miten se parantaa käyttäjäkokemusta
|
|
|
|
|
|
#### Käytännön sovellus
|
|
|
- **Vertaa** rajapintaasi tekniikoihin, joita käytimme terrarium-projektissa
|
|
|
- **Ehdota**, miten rajapinta voisi parantaa tai laajentaa terrariumin toiminnallisuutta
|
|
|
- **Tunnista** muita projekteja, joissa tämä rajapinta olisi hyödyllinen
|
|
|
|
|
|
### Vaihe 3: Koodiesimerkki
|
|
|
|
|
|
Sisällytä yksinkertainen, toimiva koodiesimerkki, joka havainnollistaa rajapintasi toimintaa. Sen tulisi olla:
|
|
|
- **Toimiva** - Koodin tulee toimia testattaessa
|
|
|
- **Kommentoitu** - Selitä, mitä kukin osa tekee
|
|
|
- **Relevantti** - Liittyy realistiseen käyttötapaukseen
|
|
|
- **Aloittelijaystävällinen** - Ymmärrettävä web-kehitystä opettelevalle
|
|
|
|
|
|
## Palautusmuoto
|
|
|
|
|
|
Jäsennä palautuksesi selkeillä otsikoilla:
|
|
|
|
|
|
```markdown
|
|
|
# [Interface Name] DOM Investigation
|
|
|
|
|
|
## What It Does
|
|
|
[Technical overview]
|
|
|
|
|
|
## Real-World Example
|
|
|
[Website analysis and implementation details]
|
|
|
|
|
|
## Code Demonstration
|
|
|
[Your working example with comments]
|
|
|
|
|
|
## Reflection
|
|
|
[How this connects to our terrarium project and future applications]
|
|
|
```
|
|
|
|
|
|
## Arviointikriteerit
|
|
|
|
|
|
| Kriteeri | Erinomainen (A) | Hyvä (B) | Kehittyvä (C) | Parannettavaa (D) |
|
|
|
|----------|-----------------|----------|---------------|-------------------|
|
|
|
| **Tekninen ymmärrys** | Osoittaa syvällistä ymmärrystä tarkkojen selitysten ja oikean terminologian avulla | Osoittaa hyvää ymmärrystä enimmäkseen tarkkojen selitysten avulla | Perustason ymmärrys, joitakin väärinkäsityksiä | Rajoitettu ymmärrys, merkittäviä virheitä |
|
|
|
| **Todellinen analyysi** | Tunnistaa ja analysoi perusteellisesti todellisen toteutuksen konkreettisilla esimerkeillä | Löytää todellisen esimerkin ja analysoi sitä riittävästi | Löytää esimerkin, mutta analyysi on pinnallista | Epämääräinen tai virheellinen yhteys todellisuuteen |
|
|
|
| **Koodiesimerkki** | Toimiva, hyvin kommentoitu koodi, joka selkeästi havainnollistaa rajapinnan | Toimiva koodi riittävillä kommenteilla | Koodi toimii, mutta kaipaa parempaa dokumentointia | Koodissa on virheitä tai huono selitys |
|
|
|
| **Kirjoituksen laatu** | Selkeä, mukaansatempaava kirjoitus, jossa on hyvä rakenne ja tekninen viestintä | Hyvin jäsennelty ja hyvä tekninen kirjoitus | Riittävä rakenne ja selkeys | Huono rakenne tai epäselvä viestintä |
|
|
|
| **Kriittinen ajattelu** | Tekee oivaltavia yhteyksiä käsitteiden välillä ja ehdottaa innovatiivisia sovelluksia | Osoittaa hyvää analyyttistä ajattelua ja relevantteja yhteyksiä | Jossain määrin analyysiä, mutta voisi olla syvällisempää | Vähän todisteita kriittisestä ajattelusta |
|
|
|
|
|
|
## Vinkkejä onnistumiseen
|
|
|
|
|
|
**Tutkimusstrategiat:**
|
|
|
- **Aloita** MDN-dokumentaatiosta saadaksesi luotettavaa tietoa
|
|
|
- **Etsi** koodiesimerkkejä GitHubista tai CodePenistä
|
|
|
- **Tarkista** suosittuja verkkosivustoja selaimen kehittäjätyökaluilla
|
|
|
- **Katso** opetusvideoita visuaalisten selitysten saamiseksi
|
|
|
|
|
|
**Kirjoitusohjeet:**
|
|
|
- **Käytä** omia sanojasi sen sijaan, että kopioisit dokumentaatiota
|
|
|
- **Sisällytä** konkreettisia esimerkkejä ja koodinpätkiä
|
|
|
- **Selitä** tekniset käsitteet kuin opettaisit ystävää
|
|
|
- **Yhdistä** rajapintasi laajempiin web-kehityksen käsitteisiin
|
|
|
|
|
|
**Koodiesimerkki-ideat:**
|
|
|
- **Luo** yksinkertainen demo, joka esittelee rajapinnan pääominaisuudet
|
|
|
- **Rakenna** terrarium-projektin konsepteja hyödyntäen, jos mahdollista
|
|
|
- **Keskity** toiminnallisuuteen visuaalisen suunnittelun sijaan
|
|
|
- **Testaa** koodisi varmistaaksesi, että se toimii oikein
|
|
|
|
|
|
## Palautuspäivä
|
|
|
|
|
|
[Lisää palautuspäivä tähän]
|
|
|
|
|
|
## Kysymyksiä?
|
|
|
|
|
|
Jos tarvitset lisäselvitystä mistä tahansa tehtävän osa-alueesta, älä epäröi kysyä! Tämä tutkimus syventää ymmärrystäsi siitä, miten DOM mahdollistaa interaktiiviset verkkokokemukset, joita käytämme päivittäin.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Vastuuvapauslauseke**:
|
|
|
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä. |