Autor Zpráva
Mayky
Profil *
Mam takovej problem s kešováním obrázku. V javascript sem začátečník ale delal sem v C,VB, Assembler a tak. Momentalne mne trápí že se mi nekešují oprázky. Pokaždé se to načítavá z netu. Nejlepe viď. www.modelsofww2.ic.cz . Když se klikne na odkaz nebo na granat na boku tak by se mnel menit každých 300 milisekund (vybuchovat) prave vedle odkazu stránky kde jsem. Bohužel se ten obrazek nekešuje a nestiha se to mnenit. I do hlavičky html jsem dal <meta http-equiv="cache-control" content="cache">
<meta http-equiv="pragma" content="cache">

Jak múžu udelat aby se ten obrazek načetl do pameti pc a pak se četl jenom odtud a menil? Jak to mužu udelat aby se to kešovalo i v firefox?
peta
Profil *
Mayky viz preload obrazku, asi 2 zpravy dolu
peta
Profil *
Mayky mimochodem, na strance se u menu nezobrazi scroll, takze pulka menu je temer nepristupna. Pak vznika otazka, proc tam pises tolik polozek, kdyz je pulka stejne k nicemu?
Šlaha
Profil
Možná by se pro produkty mozilly dalo použít toto:
http://acci.wz.cz/webdesign/co-je-to-link-prefetching.acci
Leo
Profil
V prve rade bych si overil ze se obrazek opravdu stahuje ze serveru (ve FF existuje rozsireni Live HTTP Headers), protoze ani k kese se nestahne okamzite. Leo
Radek Hrabůvka
Profil
Myslím si že na tohle bude stačit obyčejný Preload obrázku
Mayky
Profil *
Takto vypadá muj script ale nefunguje to. Malo by to fungovat tak že když kliknu myškou na text alebo granat (vid. modelsofww2.ic.cz) na leve strane stranky tak by se mnely menit tri obrazky granatu (granat vybuchuje). Kde je tam ted chyba? Kde odladujete programy javascriptu?


var i=0;
var x;
var casov;

function objGet(x)
{return document.getElementById}

function zmenObj(x)
{var a=["","1","2"];
objGet(x).src="../mayky_files/pictures/granatn"+a[i]+".jpg";
i=(i<3)?i+1:0;
}

function startzmena(x){
casov=window.setInterval("zmenObj(prenos)", 250);
}

function zaistit(){
var pole=new Array ("gran1","gran2","gran3","gran4","gran5","gran6","gran7");
for(i=0;i<pole.length;i++){
document.getElementById(pole[i]).src = "../mayky_files/pictures/granatn.jpg";
}
}
startzmena('gran1')
Mayky
Profil *
Ten prenos tam melo byt "x"
Mayky
Profil *
Ten prenos tam melo byt "x"
peta
Profil *
Mayky
odladujeme?
Firefox - nastroje - javascript konzola
Opera - Nastroje - javascript konzola
Explorer - Dole na vykricniku 2x tuknes, zobrazi se ku podivu vseho, take javascript konzola, tuknes na podrobnosti...

Ta mi prosim pekne hlasi:
Chyba: document.getElementById(idecko) has no properties
Zdrojový soubor: http://www.modelsofww2.ic.cz/mayky_files/sidebar.htm
Řádek: 41
-- a bodejd by to nehlasilo, kdyz misto ID pouzivas name: name="gran3"
To se pak samozrejme prirazeni objektu pise jinak (ne document.getElementBy ! ID !), treba:

function objGet(x)
{var d=document;if(typeof x=='string')
x=d.getElementById?d.getElementById(x):d.all?eval('d.all.'+x):d.layers ?d.layers[x]:null;
return x;}

Konkretne pro to name staci:
function objGet(x)
{return eval('document.'+x)}

zajistit pres pole? hm :)

<head>
<script>
var i=0;
var x;
var casov;

function objGet(x)
{return document.getElementById}
function grSrc(x,z)
{objGet("../mayky_files/pictures/granatn"+x+".jpg").src=z}

function zmenObj(x)
{var a=["","1","2"];
grSrc(x,a[i]);
i=(i<3)?i+1:0;
}

function startzmena(x){
casov=window.setInterval("zmenObj(prenos)", 250);
}

function zaistit()
{for(i=0;i<7;i++) objsrc("gran"+(i+1),"");}

startzmena('gran1');
</script>
</head>

<body>
<img scr="" width="30" height="50" id="gran1" />
<img scr="" width="30" height="50" id="gran2" />
<img scr="" width="30" height="50" id="gran3" />
<img scr="" width="30" height="50" id="gran4" />
<img scr="" width="30" height="50" id="gran5" />
<img scr="" width="30" height="50" id="gran6" />
<img scr="" width="30" height="50" id="gran7" />
</body>
peta
Profil *
jo, spravne, ja to neopravil, prenos, pak objGet a grSrc... Doufam, ze toto je uz oki
(najdi 7 rozdilu od puvodni verze? :) )

<head>
<script>
var i,x
va casov=null;
i=0;

function objGet(x)
{return document.getElementById(x)}

function grSrc(x,z)
{objGet("gran"+x).src="../mayky_files/pictures/granatn"+z+".jpg"}

function zmenObj(x)
{grSrc(x,i?i:'');i=(i<3)?i+1:0}

function startzmena(x){
casov=window.setInterval("zmenObj(x)", 250);
}

function zaistit()
{for(i=0;i<7;i++) grSrc(i+1,"");}

startzmena('gran1');
</script>
</head>

<body>
<img scr="" width="30" height="50" id="gran1" />
<img scr="" width="30" height="50" id="gran2" />
<img scr="" width="30" height="50" id="gran3" />
<img scr="" width="30" height="50" id="gran4" />
<img scr="" width="30" height="50" id="gran5" />
<img scr="" width="30" height="50" id="gran6" />
<img scr="" width="30" height="50" id="gran7" />
</body>
peta
Profil *
jeste chybka, toto:
startzmena(1)
kdyz ja to netestuji a jen z hlavy :)
Mayky
Profil *
Dikes moc peto. Promin, že se ptam i na hlouposti a delam uplne banalni chyby ale treba nekdy začít. Jinak myslim že už jsem pochopil i ten preload. Proste třeba ukládat obrázky do promených a až pak je používat aby se netahali pořád ze serveru (teda aspoň doufám, že to chápu správne). Tak to du skusit predelat....... :)

Dikes ješte jednou....
Mayky
Profil *
Jinak až budu psát takové scripty jako ty z hlavy tak to už pudu asi oslavit.... :))
Mayky
Profil *
A tohle si mam jak vysvetlit?

function zmenObj(x)
{grSrc(x,i?i:'');i=(i<3)?i+1:0}
peta
Profil *
Mayky
Toz z hlavy, dyt jsem tam napsal jen par radku, vetsinou upravil tvuj script. ted pisi daleko slozitejsi vec :)
Jo, proc to nemas jako animovany GIF? V gifu se da nastavit probehnuti jen 1x a bys vymenil obrazek1.gif za obrazek2.gif

function zmenObj(x)
{grSrc(x,i?i:'');i=(i<3)?i+1:0}

x - hodnota ze zmenObj(x), cislo

i?i:'' - podminka, kdyz i=true potom pouzij "i" nebo "" (prazdny retezec)
tez muzu napsat se zavorkami (i)?i:''
i = true v pripade, ze i=1 ; i=true ; i>0
i = false kdyz i=0; i=false; i=-1; (-1 = objekt neexistuje, alias undefined)
www.jakpsatweb.cz - Javascript - podminky
(kdyz menis najednou vice promennych, pouzijes switch, if, kdyz jednu, lze to psat takhle s otaznikem)

i=(i<3)?i+1:0; tez muzu napsat jen i=i<3?i+1:0;
totez, jestlize je i<3, dej do i (i=...) vysledek i+1, jinak tam dej 0
Tez lze napsat jako:
i++;if (i>2) i=0;
... kdyz tomu budes vic rozumnet, kdyz ja raci slozite a kratce :)
Mayky
Profil *
Doteď sem to skoušel a vypisuje mi pořád chybu na řádku 25 (***),char: 4. Error: 'null' is null or not an object, code: 0

var i,x,z;
var casov=null;
i=0;

function objGet(x)
{return document.getElementById(x)}

function grSrc(x,z)
*** {objGet("gran"+x).src="../mayky_files/pictures/granatn"+z+".jpg"}

function zmenObj(x)
{grSrc(x,i?i:'');i=(i<3)?i+1:0}

function startzmena(x){
casov=window.setInterval("zmenObj(x)", 250);
}

function zaistit()
{for(i=0;i<7;i++) grSrc(i+1,"");}

startzmena(1);
Mayky
Profil *
S touto hláškou se stále potíkám : Error: 'null' is null or not an object.
Nemúžu to nejak rozbehat. Help!!!!!!!!!!!!!!!!!!!!!!!!§§§
Leo
Profil
Nikde jste nenastavil hodnotu globalni pormenne x, Leo
peta
Profil *
Leo
taky pravda :) sem nemel cas to zkouset, ani se mi nechtelo

Mayky
var i; //x z tady smazat nebo takhle zakomentovat, to tam vubec nepatri
var casov=null;
i=0;

Ja totiz pro globalni promenne pouzivam 3 a vice pismenkove nazvy, do vnitnich funkci davam jednopismenkove. Dobre se v tom orientuje, hned vidis, jestli nastavejes neco pro venek funkce (globalni promennou) nebo jen neco bezvyznamneho uvnitr funkce;
Mayky
Profil *
Dikes hoši. Mnel jsi pravduLeo. Už jsem na to přišel. Bohužel mi to zničilo miliony nervových bunek.
Diky peto za radu ohledem systému psaní promnených. Vubec se mi to nezdá špatné.

Existuje nejaký program kde jsi mužete nechat prokontrolovat script, nebo krokovat nebo neco takového jako vo Visual Basic 6.0? Vždy strávím hodne času na hledání chyby i když si to nechám zobrazit v konzole. Nekteré veci mi ani nefungují i když je napíšu do zdrojáku presne jak jsou tu: napr. z diskuse preload -

var obr1, obr2 = new Image();
obr1.src = "prvni.gif";
obr2.src = "druhy.gif";
tohle mi stále vypisuje chybu. Nechápu to. I když je pravde že JavaScript mne skutečne zaujal. Ono vetšinou jenom louskám kódy a snažím se je pochopit. Momentálne hlavne ty tvoje peto. Tvúj styl se mi vcelku líbí.

Nejaký ten prográmek na odladení mi však hodne chybí. Nekdy hladám hloupou chybu (napr. dám male pismeno na image v new Image() ) pul hodinu a to sem fakt zoufalý....
Toto téma je uzamčeno. Odpověď nelze zaslat.

0