Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Carl
HV kasutaja
liitunud: 16.11.2002
|
12.02.2013 05:00:37
Javascripti include töökindlamaks |
|
|
Tervist.
Loodan, et suudan oma segast mõttekäiku enamvähemgi arusaadavalt kirja panna.
Tegu on paljudele lehtedele jagatava koodiga, mis kasutab javascripti includet teenusepakkuja serverist. Kui teenusepakkuja server on maas, siis tulemuseks on probleem lehe laadimisel ning kliendi lehele jääb tühi auk.
Kas on mingit mõistlikku viisi laadimaks sama javascripti esimese serveri maasolekul teisest serverist?
Kuidas browser käitub, kui see script alati topelt includeda (ning mõlemad scriptid panna kontrollimas, kas "teine" on juba laetud ning sel juhul enda väljastus tegemata jätta)? Kuidas käituvad browserid siis kui üks script puudu on? Kas leht laetakse lõpuni või jäävad osad (vanemad) browserid seljuhul ripakile?
Ise olen testimisega jõudnud niikaugele, et kui scriptides on funtsioonide nimed erinevad, siis komplikatsioone ei teki, aga hetke üleküsimise mõte on ka see, et enda ülemõtlemisega asja hullemaks ei teeks. Kui script on juba töös ning siis selgub, et pooled browserid käituvad topeltlaadimsiega halvasti (mis enda testimisel välja ei tulnud) on lõpptulemus halvem kui redundancy tegemata jätmine.
Kuna suurem osa scriptist on jquery, siis selle käitumist suure mahu ei ole ma suuteline ise hindama (peale mõne katse, mis senini on näinud olevat edukad).
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
monkeyking
HV vaatleja

liitunud: 31.03.2012
|
12.02.2013 09:29:40
|
|
|
Ei tea kas sain päris õigesti aru, aga nt nii saaks fallbacki teha:
<script src="main scripti url"></script>
<script>if(typeof jQuery=="undefined"){document.write(unescape("%3Cscript src='fallback url' type='text/javascript'%3E%3C/script%3E"));}</script>
|
|
|
tagasi üles |
|
 |
Vermon
Kreisi kasutaja

liitunud: 04.12.2003
|
12.02.2013 09:34:10
|
|
|
Kui scripti saad vabalt muuta siis mina soovitaks sul peita selle loogika sealt seest namespace'i sisse.
Esiteks on nii kindlab, et tulevikus ei teki konflikte teiste skriptidega ja teiseks on väga lihtne teha kontrolli, et kui see namespace juba eksisteerib siis ära antud failis uut defineeri:
http://elegantcode.com/2011/01/26/basic-javascript-part-8-namespaces/
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
12 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
12.02.2013 17:57:27
|
|
|
monkeyking kirjutas: |
Ei tea kas sain päris õigesti aru, aga nt nii saaks fallbacki teha:
<script src="main scripti url"></script>
<script>if(typeof jQuery=="undefined"){document.write(unescape("%3Cscript src='fallback url' type='text/javascript'%3E%3C/script%3E"));}</script>
|
|
Saab ka lihtsamalt .jQuery näitel jällegi
html:
|
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script>window.jQuery || document.write(' <script src="js/vendor/jquery-1.9.1.min.js"><\/script>') </script>
|
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
Carl
HV kasutaja
liitunud: 16.11.2002
|
13.02.2013 15:17:17
|
|
|
monkeyking, tänan. Testisin ühte ja teist pidi ning seni kõik tulemused vaid positiivsed.
Nüüd jääb vaid loota, et mõni totakas browser lehte näitamata ei jäta kui esimene include ei õnnestu.
ajax.googleapis.com juures tekib alati hirm, et kas ka google võib kunagi maas olla?
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.02.2013 16:24:29
|
|
|
Carl, sellejaoks teine rida ju ongi, et kui sealt kätte ei saa siis võtab lokaalse koopia
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
Carl
HV kasutaja
liitunud: 16.11.2002
|
13.02.2013 21:17:01
|
|
|
Minu viga. Kuna mõte oli esimese lahenduse nii kinni, siis jäi lokaalse koopia osa märkamata ning aju pani kokku pildi, kus jQuery toimimine on include on fallbacki tegemise eeldus (oleks ma pannud tähele teise rea failinime, siis oleks ilmselt üritanud kaugemale mõelda).
Ilma if lauseta tundus "window.jQuery || ..." kontrukstioon harjumatu ning ei teadnud, et seda saab nii kasutada.
|
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|