Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: AJAX: onreadystatechange parametrina?

Sivun loppuun

B_R_H [13.07.2009 16:55:06]

#

Tervehdys taas,

Olen koettanut opetella AJAXia ja nyt tuli funktioita tehdessä vastaan probleemi.

// funktio, jolla varsinainen kutsu on tarkoitus tehdä
Omakutsu(funktio)
{
...
req.onreadystatechange=funktio;
...
}

// funktio, jolla käsitellään vastaus, jos sattui osumaan
function Kutsu_funktioon()
{
    if(req..readyState == 4) {
       alert(req.responseText);
    }
}

// main-osasta kutsuttava javascript-funkitio, josta tuota AJAX rajapintaa käytetään
...
Omakutsu('Kutsu_funktioon')
...

Toivottavasti osasin selittää, mitä olen hakemassa?

Frozenball [13.07.2009 17:24:39]

#

Vaikka tämä ei vastaakaan ongelmaasi, kannattaa omat AJAX-hössökät unohtaa ja käyttää valmista kirjastoa. Itse olen käyttänyt jQueryä.

punppis [13.07.2009 22:00:21]

#

Frozenball kirjoitti:

Vaikka tämä ei vastaakaan ongelmaasi, kannattaa omat AJAX-hössökät unohtaa ja käyttää valmista kirjastoa. Itse olen käyttänyt jQueryä.

Pyh. Itse suosin ainakin oma tekemää koodia, sillä silloin ainakin oppii parhaiten.

En tajunnut alkuperäistä ongelmaa.

B_R_H [14.07.2009 08:50:59]

#

Punppis on oikeessa - hyvä oppia....

Yritän siis välittää parametrina funktiona, jota käytetään onreadystatechange paluuarvon käsittelyssä. Omakutsu-funktion kutsussa parametrina kuljetetaan sen funktion nimi, mitä halutaan käyttää tässä tapauksessa. Tuo onreadystatechange ei vaan suostu ottamaan vastaan parametrina tullut funktiota.

Grez [14.07.2009 08:58:51]

#

Lähinnä tulisi mieleen seuraavat korjaukset:

Omakutsu('Kutsu_funktioon') -> Omakutsu(Kutsu_funktioon)
TAI
req.onreadystatechange=funktio -> req.onreadystatechange=eval(funktio)

Lisäksi:

if(req..readyState == 4) { -> if(req.readyState == 4) {

B_R_H [14.07.2009 10:31:51]

#

Grez: Kiitos!

Tuo hipsujen poisto ratkaisi koko tilanteen. Tarvitsi siis välittää funktion osoite ei itse funktion nimeä. Varmaankin parempi tapa, kuin eval()?

Tarkkanan olet oluut lukiessasi, kun huomasit tuon ylimääräisen pisteen (copy/paste-virhe penkin ja näppiksen välissä)!

TeNDoLLA [14.07.2009 15:34:12]

#

Jos haluaa todellakin oppia niin silloin copy-paste tyyli ei ole varmaan se paras mahdollinen, vaan kannattaisi silloin itse kirjoittaa alusta loppuun asiat. Vaikka mallia katsoisikin jostain.

B_R_H [14.07.2009 15:58:11]

#

Juu tää oli copy/paste omasta ja itse kirjoitetusta koodista - kerrankin oikeassa :-)

MikaBug [16.07.2009 15:10:31]

#

Minua ei myöskään kiinnosta valmiiden kirjastojen käyttö yhtään sen enempää kuin pakko, kaikki minkä osaan ja pystyn teen itse. Se on sitten eri asia työelämässä kun pitää olla tuottava ja on käytettävä mahdollisimman paljon valmiita kirjastoja ja koodia jotta saataisiin nopeasti tulosta aikaiseksi. Mutta jos itse meinaa oppia koodaamaan niin koodattava siinä silloin onkin.

TeNDoLLA [16.07.2009 18:33:38]

#

Ei sillä, etteikö siitä aina jotain hyötyä olisi jos osaa koodata aina kaiken alusta loppuun ruohonjuuri tasolla. Mutta mitä varten opettelet, jos et työelämää tai omia projekteja varten? Omissa projekteissa ja työelämässä kuitenkin on parempi käyttää niitä valmiita kirjastoja, joilla koodaaminen sujuu helpommin, nopeammin ja koodin luettavuuskin on ihan eri luokkaa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta