| Autor | Zpráva | ||
|---|---|---|---|
| Fisak Profil |
#1 · Zasláno: 24. 5. 2013, 19:17:03
Dobrý den. Rád bych se zeptal jestli lze nějak zacachovat obrázky na stránce tak aby se načetli pouze jednou a pak už se jen kopírovali. Myslím že to šlo nějak pomocí jquery $('<img/>').attr('src', 'obrazek.gif'); ale tím si nejsem jistý. Prosím o radu.
|
||
| honzaik Profil |
#2 · Zasláno: 24. 5. 2013, 19:44:21
myslim že to si zajištuje prohlížeč sám :D když budeš mit obrázek se stejnou url tak ho to nebude stahovat znova
|
||
| Fisak Profil |
#3 · Zasláno: 24. 5. 2013, 19:51:21
honzaik:
aha no já mam na stránce 7171 kostiček obrázků ale je tam pouze 31 obrázků.. z větší části se opakují... A právě píše mi to "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 57065474 bytes) in /data/web/virtuals/30303/virtual/www/subdom/chadmin/system/function/function.main.php on line 305" |
||
| honzaik Profil |
#4 · Zasláno: 24. 5. 2013, 20:17:16
no tak ale to je chyba v php ne?
|
||
| Fisak Profil |
#5 · Zasláno: 24. 5. 2013, 20:23:57
honzaik:
No je to memory limit.. Já ho mám nastavený na 128MB a pokud se nemýlím tak pokud přesáhne skript tento limit tak se zvolá tato hláška. A pokud počítám správně tak by to měli způsobovat ty obrázky... |
||
| honzaik Profil |
hm a ty tam ty obrázky přidáváš hned zezačátku čistě přes html, nebo průběžně js? zkus někam do body dát <img src="url" style="display:none">
|
||
| Fisak Profil |
#7 · Zasláno: 24. 5. 2013, 20:46:13 · Upravil/a: Fisak
honzaik:
no tahám z db url a pak je vkládám do <img src="url" /> <style type="text/css">
body {overflow :hidden;}
.presun_mne {position:relative; cursor:move; width: 9999999px;}
.admin_nastroje {
position: absolute;
top: 0;
left: 0;
z-index: 10;
border: 1px solid;
border-color: #000000;
background-color:white;
}
</style>
<div class="admin_nastroje">
<form method="post">
<input name="plus_y" type="submit" value="Přidat horní řadu" /> <input name="minus_y" type="submit" value="Přidat dolní řadu" /> <input name="minus_x" type="submit" value="Přidat levý sloupec" /> <input name="plus_x" type="submit" value="Přidat pravý sloupec" /> || velikost: <input name="px_type" type="text" size="4" value="<?php if(empty($_GET['size'])) { echo "100"; } else { echo $_GET['size']; } ?>" />px || okraje: <input name="border_type" type="checkbox" <?php if(!empty($_GET['br']) and $_GET['br'] == "on") echo "checked=\"checked\""; ?>/> <input name="save_type" type="submit" value="Uložit" />
</form>
</div>
<div class="presun_mne">
<?php
//výpis výškových souřadnic
$map_y_sql = DB::query("SELECT DISTINCT [position_y] FROM [ch_map] ORDER BY position_y")->fetchAll();
foreach ($map_y_sql as $n => $row_map_y) {
//výpis šířkových souřadnic
$map_x_sql = DB::query("SELECT * FROM [ch_map] where [position_y] = %i", $row_map_y->position_y, "ORDER BY position_x")->fetchAll();
foreach ($map_x_sql as $n => $row_map_x) {
$map_img_echo = DB::query("SELECT [url_img] FROM [ch_map_img] where [id] = %i", $row_map_x->img_id);
?><a href="#" onDblClick="openModalFrame('<?php echo $row_map_x->id; ?>');"><img src="./images/textures/<?php echo $map_img_echo->fetchSingle('url_img'); ?>" alt="<?php echo $row_map_x->position_x.":".$row_map_x->position_y; ?>" title="<?php echo $row_map_x->position_x.":".$row_map_x->position_y; ?>" width="<?php if(empty($_GET['size'])) { echo "100"; } else { echo $_GET['size']; } ?>" height="<?php if(empty($_GET['size'])) { echo "100"; } else { echo $_GET['size']; } ?>" <?php if(!empty($_GET['br']) and $_GET['br'] == "on") echo "border=\"1\""; ?> /></a><div id="dialog-<?php echo $row_map_x->id; ?>" style="min-height: 500px; width: 1200px; z-index:10000; display:none;" title="Změna textury"><div id="contentmodal"><?php
$map_img_echo_now = DB::query("SELECT [*] FROM [ch_map_img]")->fetchAll();
foreach ($map_img_echo_now as $n => $row_img_ech) {
echo "$('<img/>').attr('src', './images/textures/".$row_img_ech->url_img."');";
echo "<a href=\"#\" onclick=\"sendAjaxTextures('".$row_img_ech->id."', '".$row_map_x->id."');\"><img src=\"./images/textures/".$row_img_ech->url_img."\" /></a>";
}
?></div></div><?php
}
echo "<br>";
}
?>
</div> |
||
| honzaik Profil |
tohle se mi moc nechce luštit, jako nejsem takovej odborník ale prostě poradim že obrázek se dá nacachovat jak už jsem psal nebo pokud to dělá s js tak bych si udělal
var el = document.createElement("img");
el.src= url; |
||
| Fisak Profil |
#9 · Zasláno: 24. 5. 2013, 21:05:42
honzaik:
No googlil jsem a právě všude psali že to je memory limitem.. já ho mám nastavený na 128MB a přemýšlím co jiného by mi ho mohlo překročit než to že by se mi nažetlo 7000krát 31 obrázků. tzn když mam <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> <img src="obrazek.png" /> |
||
| honzaik Profil |
tobě se to načte 10x? já teda když si zkusim udělat třeba 6 obrázků za sebou se stejnou url tak chrome mi vypíše že se stahoval jen jeden obrázek :D (jeden má vel 6,5kB)
<img src="http://www.zing.cz/images/thumbnails/article178/7347b64b-17247-17208-nfs.jpg"> <img src="http://www.zing.cz/images/thumbnails/article178/7347b64b-17247-17208-nfs.jpg"> <img src="http://www.zing.cz/images/thumbnails/article178/7347b64b-17247-17208-nfs.jpg"> <img src="http://www.zing.cz/images/thumbnails/article178/7347b64b-17247-17208-nfs.jpg"> <img src="http://www.zing.cz/images/thumbnails/article178/7347b64b-17247-17208-nfs.jpg"> <img src="http://www.zing.cz/images/thumbnails/article178/7347b64b-17247-17208-nfs.jpg"> |
||
| jenikkozak Profil |
#11 · Zasláno: 24. 5. 2013, 21:21:40
O obrázek žádá prohlížeč až poté, co získá zdrojový HTML kód. Tvůj skript ale patrně selže dřív, než stihne HTML vygenerovat. Přemýšlet v takové situaci nad cachováním obrázků nebo nějakými výmysly v JS je zbytečné.
|
||
| pcmanik Profil |
#12 · Zasláno: 24. 5. 2013, 21:24:31
Fisak:
Máš tam nejak veľa vnorených cyklov, ktorý každý vyťahuje niečo z db. Zrejme php neuvoľnuje prostriedky a tebe to tak zaplní celú pameť. |
||
|
Časová prodleva: 12 let
|
|||
0