Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Javascripti include töökindlamaks märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Carl
HV kasutaja

liitunud: 16.11.2002



Autoriseeritud ID-kaardiga

sõnum 12.02.2013 05:00:37 Javascripti include töökindlamaks vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
monkeyking
HV vaatleja
monkeyking

liitunud: 31.03.2012




sõnum 12.02.2013 09:29:40 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Vermon
Kreisi kasutaja
Vermon

liitunud: 04.12.2003




sõnum 12.02.2013 09:34:10 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 12.02.2013 17:57:27 vasta tsitaadiga

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:
  1.         <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  2.         <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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Carl
HV kasutaja

liitunud: 16.11.2002



Autoriseeritud ID-kaardiga

sõnum 13.02.2013 15:17:17 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 13.02.2013 16:24:29 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Carl
HV kasutaja

liitunud: 16.11.2002



Autoriseeritud ID-kaardiga

sõnum 13.02.2013 21:17:01 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Javascripti include töökindlamaks
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
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



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.