Autor | Zpráva | ||
---|---|---|---|
Mayky Profil * |
#1 · Zasláno: 5. 10. 2005, 18:17:16
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 * |
#2 · Zasláno: 5. 10. 2005, 18:43:27
Mayky viz preload obrazku, asi 2 zpravy dolu
|
||
peta Profil * |
#3 · Zasláno: 5. 10. 2005, 18:45:23
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 |
#4 · Zasláno: 5. 10. 2005, 18:50:38
Možná by se pro produkty mozilly dalo použít toto:
http://acci.wz.cz/webdesign/co-je-to-link-prefetching.acci |
||
Leo Profil |
#5 · Zasláno: 5. 10. 2005, 20:13:30
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 |
#6 · Zasláno: 5. 10. 2005, 20:32:38
Myslím si že na tohle bude stačit obyčejný Preload obrázku
|
||
Mayky Profil * |
#7 · Zasláno: 5. 10. 2005, 20:47:06
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 * |
#8 · Zasláno: 5. 10. 2005, 20:50:16
Ten prenos tam melo byt "x"
|
||
Mayky Profil * |
#9 · Zasláno: 5. 10. 2005, 20:52:43
Ten prenos tam melo byt "x"
|
||
peta Profil * |
#10 · Zasláno: 6. 10. 2005, 07:41:12
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 * |
#11 · Zasláno: 6. 10. 2005, 07:50:42
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 * |
#12 · Zasláno: 6. 10. 2005, 07:51:46
jeste chybka, toto:
startzmena(1) kdyz ja to netestuji a jen z hlavy :) |
||
Mayky Profil * |
#13 · Zasláno: 6. 10. 2005, 08:59:12
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 * |
#14 · Zasláno: 6. 10. 2005, 09:00:13
Jinak až budu psát takové scripty jako ty z hlavy tak to už pudu asi oslavit.... :))
|
||
Mayky Profil * |
#15 · Zasláno: 6. 10. 2005, 09:14:02
A tohle si mam jak vysvetlit?
function zmenObj(x) {grSrc(x,i?i:'');i=(i<3)?i+1:0} |
||
peta Profil * |
#16 · Zasláno: 6. 10. 2005, 11:40:09
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 * |
#17 · Zasláno: 6. 10. 2005, 13:12:09
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 * |
#18 · Zasláno: 7. 10. 2005, 14:02:25
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 |
#19 · Zasláno: 9. 10. 2005, 16:16:54
Nikde jste nenastavil hodnotu globalni pormenne x, Leo
|
||
peta Profil * |
#20 · Zasláno: 9. 10. 2005, 17:14:11
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 * |
#21 · Zasláno: 10. 10. 2005, 17:55:19
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ý.... |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0