Java & globaalit muuttujat

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Aloin tuossa joutessani mietiskelemään että onko "väärin" tehdä html/java näin:

- jokaiselle tagille määrittelen id:n.
- body onloadilla nakkaan funktion jossa on getElementById ja saan javascriptin globaaleihin muuttujiin kaikki id:t heti kun sivu ladataan.

Globaalit muuttujat tuntuvat jotenkin "rujoilta" oikein kunnon koodissa, mutta jos ne rajoittuvat elukoiden tietoihin niin itse scriptin tekeminen on näin vasta-alkajalle helpompaa.

Aikoinani commodore64:n ollessa voimissaan oli tarve vääntää oikein tehokasta koodia jossa ajalla oli tärkeä merkitys (ah, ruudunvieritys ilman nykimistä). Toki tosiammattilaisille tämä on totta vieläkin. Mutta näin peruskäyttäjän kannalta (html:n kannalta) on aivan sama kuinka monta bittiä kone rouskuttaa sekunnissa.

Nyt kun suorituskyvyt koneilla (ja verkossa) on aika jämäkkää luokkaa niin seuraava kysymys on hivenen humoristinen (mutta asiallinen):

Kumminpäin homma toimii nopeammin html/java:ssa(ä)?

1) Haetaan jokakerta kun funktio suoritetaan, id omalla funktiolla.
2) id:t ovat valmiina muistissa josta ne haetaan.

Käytännön merkitystä minulle tästä ei ole mutta ihan mielenkiinnon vuoksi olisi mukava tietää.

Kommentit (8)

Volitans
Seuraa 
Viestejä10670
Liittynyt16.3.2005

Miksi käyttäisit muistia, jos niitä ei välttämättä edes tarvita?

Eli vasta tarvittaessa haet käpisteltävän tagin getElementById():llä.

64:ssa tuo videopiirin keskeytyksellä tehtävä nykimätön vieritys oli kyllä ihmetyksen aihe. Ensimmäisen kerran näin sellaisen Scramble (vai mikä se nyt olikaan) pelissä. Kovasti ihmettelin, kunnes sitten jossain lehdessä oli vinkki, että videokeskeytyksellähän se tehdään. Ja hyvin toimi, tosin assemblerilla se oli pakko vääntää. Samalla menetelmällä sai muuten noita spritejäkin enemmän kuin normaalisti. Videokeskeytyksellä vaan ladataan uudet datat spritelle.

Vierailija

Luulisin, että suorituskykymielessä ei ole käytännön merkitystä miten päin tekee. Paras heuristiikka lienee se, että jos id:tä tarvitaan/luullaan tarvittavan usein, se kannattaa tallettaa muuttujaan. Selaajahan jäsentää sivun latausvaiheessa kuitenkin ja luo tarvittavat tietorakenteet. Tietorakenteiden toteutuksesta (=html:n toteutuksesta) sitten riippuu, kuinka tehokas getElementById on. Itse tekisin mieluummin selkeää koodia kuin viilaisin kohdassa, jossa ei välttämättä saavuteta mitään.

Onko javascriptille olemassa mitään suorituskykytyökaluja?

p.s. Täsmennyksenä otsikkoon: java ja javascript ovat eri kielet. Tässä taisi olla kyse javascriptistä?

Vierailija
Volitans
64:ssa tuo videopiirin keskeytyksellä tehtävä nykimätön vieritys oli kyllä ihmetyksen aihe. Ensimmäisen kerran näin sellaisen Scramble (vai mikä se nyt olikaan) pelissä. Kovasti ihmettelin, kunnes sitten jossain lehdessä oli vinkki, että videokeskeytyksellähän se tehdään. Ja hyvin toimi, tosin assemblerilla se oli pakko vääntää. Samalla menetelmällä sai muuten noita spritejäkin enemmän kuin normaalisti. Videokeskeytyksellä vaan ladataan uudet datat spritelle.



Tässähän tulee oikein hymy huulille. Nulikkana väänsin tuota Assemblyä ja pelejähän sitä piti tehdä. Spritet piirsin ruutupaperille ja sitten koneelle. Harmittaa kun ei ole jäljellä niitä tekeleitä mitä tein (c-kasetit hävinneet). Yhden kujanjuoksupelin lähetin kirjepostilla MikroBittiin mutta mitään siitä ei kuulunut.

Mahtavaa muistella. Jokin Assembly-kirja oli mistä katoin noiden AND:ien ja NOT:ien ja muiden suoritusajat ja väänsin oikein tosissaan.

Uuno Turhapuro-pelissä oli monitasoinen vieritys. Siitä kopioin omaan peliini koodin ja sain aivan mahottoman tekeleen. Bitti bitiltä väänsin taustat.

Mutta ah. Sitten tuli nuoruuden riennot ja muut ja koko tietokonehomma on periaatteessa vähän kuin "uudella" alulla nyt. Yli kolmekymppinen olen.

alfihar
p.s. Täsmennyksenä otsikkoon: java ja javascript ovat eri kielet. Tässä taisi olla kyse javascriptistä?



Huomaat varmaan että en ole ohjelmoinut johonkin toviin.

Volitans
Miksi käyttäisit muistia, jos niitä ei välttämättä edes tarvita?

Helpompi koodata notepadilla.

Tiedättekös muuten jonkin ilmaisen freeware-softan joka näyttäisi edes jonkinmoiset virheet koodissa? Saattais helpottaa. Mutta kyllä jos tosiselviytyjä on niin homman koodaa notepadilla. ASENNETTA PERKELE. Kaivoihanse saatanan Jussikin sen suon pelloksi. [size=75:1l111tx5]Taidan olla päissäni[/size:1l111tx5]
-------------------------------------------------------------------------------------

Koneet ovat tyhmiä. Himputin hauskaa saada visio toimimaan näytöllä. (Tosin nykyiset visioni rajoittuvat lähinnä toimivuuteen ja pieneen visuaalisuuteen ja persoonallisuuteen. Paluu se on tämäkin tietokonemaailmaan.)

salai
Seuraa 
Viestejä7095
Liittynyt17.3.2005
Harhatien opiskelija
Tiedättekös muuten jonkin ilmaisen freeware-softan joka näyttäisi edes jonkinmoiset virheet koodissa? Saattais helpottaa. Mutta kyllä jos tosiselviytyjä on niin homman koodaa notepadilla. ASENNETTA PERKELE. Kaivoihanse saatanan Jussikin sen suon pelloksi. [size=75:2r3al30v]Taidan olla päissäni[/size:2r3al30v]

Tuossa on yksi ihan hyvä ilmainen: ConTEXT is a small, fast and powerful freeware text editor.

Keskusteltiin kesällä tuolla ketjussa: Mielenkiintoinen freeware-editori ConTEXT, siellä on mm. neuvottu, miten saa XP:n Notepadin korvattua ConTEXTilla. Eli esim. IE:ssäkin source näytetään paremmalla editorilla kuin "tosimiehen" käyttämällä Notepadilla. Kas kun et käytä Edliniä.

Tuolla on toinen ilmainen, uusi versio ilmestyi jouluksi: PSPad editor, freeware programmer editor - version: 4.5.0 (2175) - 12/24/2005

Mitä tahansa edellä esitetyistä väitteistä saa epäillä ja ne voidaan muuttaa toisiksi ilman erillistä ilmoitusta. Kirjoittaja pyrkii kuitenkin toimimaan rehellisesti ja noudattamaan voimassa olevia lakeja.

Vierailija
Harhatien opiskelija

Tiedättekös muuten jonkin ilmaisen freeware-softan joka näyttäisi edes jonkinmoiset virheet koodissa? Saattais helpottaa. Mutta kyllä jos tosiselviytyjä on niin homman koodaa notepadilla. ASENNETTA PERKELE. Kaivoihanse saatanan Jussikin sen suon pelloksi. [size=75:16zah8u9]Taidan olla päissäni[/size:16zah8u9]

Kannattaa myös kokeilla selvinpäin koodaamista, niin bugeja kertyy vähemmän

Vierailija
Harhatien opiskelija
Tiedättekös muuten jonkin ilmaisen freeware-softan joka näyttäisi edes jonkinmoiset virheet koodissa?

En valitettavasti tiedä, mutta free-softa kelpaa (freewaressahan on lisenssirajoituksia tai mainoksia, yms. toisin kuin free-softissa) niin koita vaikka Firefoxia ja siihen html validator laajennusta. Itse Firefox sisältää Javascript konsolin joka näyttää virheet Javascript koodeissa ja html validator laajennuksella näet puolestasi virheet html-koodissa.

Vierailija
salai
[Tuossa on yksi ihan hyvä ilmainen: ConTEXT is a small, fast and powerful freeware text editor.

Tattis. Ihan näppäränoloinen systeemi.

Gravitylle:Freewaret ovat tietääkseni ilmaisia (ainakin ne joita olen käyttänyt) ja mitään rajoituksia niiden käyttöön ei liity (tokihan tekijänoikeuksia pitää kunnioittaa). Sharewaret ovatkin sitten niitä kiroilua aiheuttavia trial-versioita joihin en koske pitkällä tikullakaan jos on aikomus käyttää jotain ohjelmaa kuukautta pidempään.

Vierailija
Harhatien opiskelija

Gravitylle:Freewaret ovat tietääkseni ilmaisia (ainakin ne joita olen käyttänyt) ja mitään rajoituksia niiden käyttöön ei liity (tokihan tekijänoikeuksia pitää kunnioittaa).

Freewaren yksi sääntö todellakin on että ohjelman pitää olla ilmainen, että se olisi Freewarea. Rajoituksien suhteen sanoin väärin, eli niitä ei välttämättä täydy olla että ohjelma täyttäisi Freewaren nimityksen, mutta yleensä niitä kuitenkin on. Esim. kaupallinen käyttö tai ohjelman levittäminen on usein kielletty.

Free software puolestaan ei välttämättä ole ilmaista (vaikka usein onkin), mutta sitä voi vapaasti kopioida, tutkia, käyttää, muokata ja levittää eteenpäin. Yleensä levitykseen itseensä sisältyy tosin myös lisenssiehtoja, mutta jotka eivät estä levitystä vaan määrittelevät vain miten se tulee tehdä. Esimerkiksi GPL määrää, että binäärin vastaanottajan tulee aina kyetä saamaan myös lähdekoodi haltuunsa. Ja tämän tarkoituksena ei ole rajoittaa levittäjän oikeuksia vaan taata vastaanottajan oikeudet ohjelmaan.

Shareware ei kuulu kumpaankaan näistä vaan on asia erikseen.

Uusimmat

Suosituimmat