Moi
Kysymys: Miten voin päivittää sivun jossa on flash sovellus, niin ettei sovellus päivity mutta koko muu sivu päivittyy. Sovellus soittaa musiikkia ja samalla selailee sivuja kun painaa linkkiä niin sivu latautuu uudestan, musiikki katkeaa ja alkaa alusta.
Yksi vaihto ehto olisi käyttää framea, mutta tarkoitus olis vältää sen käyttöä. Niinkuin tähänkin asti. Eli onko frame ainut vaihtoehto?
AJAX
Valmiita kirjastoja on tarjolla ties kuinka paljon.
esim. Prototypejs.org tarjoaa varsin käytännöllisen sellaisen.
Pitäisi kai tarkentaa. Siis sivulla on on div -kentässä flash sovellus joka soittaa musiikki(XSPF Web Music Player). Samalla pitäsi pystyä selaamaan sivuja, eli painelemaan navigointi linkkejä. Sivulla on PHP:llä tehty navigointi systeemi(www.omadom.com?id=1). Eli käytännössä pitäisi saada vain tuo php osio päivittymään kun painaa linkkiä. Ja Flash sovellus ei saa päivittyä tai ainakaan musiikin soitto ei saa katketa ja musiikin pitää siis soida koko ajan kun soitin on päällä, vaikka sivuja selailee samalla.
Sanoinko jo että AJAX on ratkaisu.
Eli sijoitat Flashin omaan diviin ja päivittyvän sisällön omaan. Sitten Ajaxilla päivität diviä (=lataat haluamasi sisällön).
Prototypellä tuo taitaa vaatia (prototypen lisäksi) kolme riviä koodia, jotka nekin no mainittu prototypen ensimmäisissä esimerkeissä.
Kjääh. Enhän minä tuollasta ensin tajunnu. Pitää tutustua tarkemmin. Onko siis tuo javascripti-koodi joka päivittää sitä div:iä?
Tuo "Javascript koodi" on kokonainen kirjasto.
Tietyn divin (tässä id:llä pageContentId) voisi päivittää vaikka näin.
<script type="text/javascript"> function refreshPage(params){ new Ajax.Updater('pageContentId', 'sivu.php?'+params, { });} </script>
ps.
Huomioi myös käyttäjät joilla ei ole javaScripti päällä.
edit:
Sitten vielä muuta:
Eli kannattaa miettiä kuinka tärkeä tuo musiikki sivustolla oikeasti on. Eli pitääkö käyttäjien musiikin takia pitää javaScripti päällä. Onko se oikeasti tarpeellinen elementti sivustolla?
Siinä mielessä se on aika tärkeä kun sivut on erään bändin. Että ihan promotion takia se musiikki soi taustalla.
Jos saan kysyä niin kumpi noista olisi sitten parempi vaihtoehto? Eihän se frameset kuitenkaan mikään rutto ole?
Kiitos avuista.
Frameset on siitä ikävä vaihtoehto, että sivun osoitteena pysyy koko ajan se index.php tai .html tai mikä nyt onkaan, eli alasivuille linkittäminen suoraan on vaikeaa. Jos joku aikoo antaa linkin kaverilleen keikkakalenteriin, tämän on annettava sivuston etusivun osoite ja kerrottava, mitä linkkejä painelemalla keikkakalenterin tietylle sivulle pääsee, kun pelkkä http://www.bändinnimi.domainpääte/keikat.php?
Niinpäs onkin. Tuota en edes ajatellut. Kiitos tiedosta.
Entäpä iFrame? Toimiiko se samalla tavalla? iFramenhan voi laittaa taulukkoon. Toimiiko se myös div:ssä?
iframe on yhtä käyttökelvoton ku frameset. Tuo AJAX ois sulle varmaan paras vaihtoehto. Laita sivuille johonkin teksti, että taustamusiikki ei toimi ilman javascriptiä ja että musiikin saa ilman sitä soimaan painamalla soittosovellukseen osoittavaa linkkiä (tai mieluummin varmaan sivulle, jolla flashi on embeddinä) hiiren toisella painikkeella ja avaamalla sen uuteen tabiin tai ikkunaan. Tietysti sitten piilotat tuon viestin niiltä käyttäjiltä, joilla AJAX toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.