|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
| autor |
|
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
17.11.2012 21:16:25
Leht laeb aeglaselt väga suure tabeli tõttu |
|
|
http://liivanelord.planet.ee/viking/?1=6&2=2&3=34&4=11&5=45&6=46&7=47&8=9&9=14&10=16&11=5&tabel=on&sagedus=1&vt=Vaata
See tabel täispikana laeb väga aeglaselt, vähemalt 10 sekundit kulub enne, kui kogu leht on laetud. Selle vältimiseks võtsin kasutusele vaikimisi piiratud tabeli suuruse näitamise, kuid kas kogu tabelit annaks kuidagi kuvada nii, et see oleks väiksem koormus serverile ja kasutaja arvutile ning avaneks kiiremini?
See on loodud puhtalt tabeli põhjal, andmed on andmebaasis kujul loosimise number, I, II, III, IV, V, VI, lisa1, lisa2, õnnenumber + tabamuste väärtused.
Kood on pikk, aga lühidalt kokkuvõttes tulevad andmebaasist andmed kujul $andmed_numbrid[nr]. Kui $andmed_numbrid[nr] kattub pileti numbriga, siis number on punane või roheline. Sedasi iga numbri kohta. Sedasi iga ühtivuse korral suureneb põhinumbrite või lisanumbrite hulk ning vastavalt sellele valitakse andmebaasi teisest (süsteemi)tabelist õige vastavate tabamuste hulk valitud numbrite hulga kohta, korrutatakse see numbrite tabelis kirja pandud tabamuste väärtustega läbi ja sellest kujuneb võidusumma.
See toimub kogu tabeli ulatuses, vaatamata sellele, kas tabel on avatud täielikult või osaliselt. Aga kui tabel on avatud osaliselt (100 viimast loosimist), siis avaneb tabel alla 3 sekundiga.
On võimalik midagi muuta või asjale teisiti läheneda? Kood ise, mis tabeli loob, on lühidalt:
| php:
|
echo "<tr><td>". $andmed_numbrid[nr ]. "</td><td". $stiil[I ]. ">". $andmed_numbrid[I ]. "</td><td". $stiil[II ]. ">". $andmed_numbrid[II ]. "</td><td". $stiil[III ]. ">". $andmed_numbrid[III ]. "</td><td". $stiil[IV ]. ">". $andmed_numbrid[IV ]. "</td><td". $stiil[V ]. ">". $andmed_numbrid[V ]. "</td><td". $stiil[VI ]. ">". $andmed_numbrid[VI ]. "</td><td></td><td". $stiil[lisa1 ]. ">". $andmed_numbrid[lisa1 ]. "</td><td". $stiil[lisa2 ]. ">". $andmed_numbrid[lisa2 ]. "</td><td></td><td>". $andmed_numbrid[onnenumber ]. "</td><td style='width:20px'>". $nool. "</td><td>". $tabamus. "</td><td>". $voit. "</td></tr>";
|
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
spreiii
HV kasutaja
liitunud: 27.12.2008
|
17.11.2012 22:55:17
|
|
|
| Ilmselt on siinkohal probleemiks just vastav SQL kood või siis meetod kuidas neid andmeid hiljem (loop'is) töödeldakse.
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
23 |
|
| tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
17.11.2012 23:12:37
|
|
|
Kui ridu tuleb üle saja-kahesaja, siis peaksid tulemuse vist ikkagi lehekülgedeks jaotama. See teeks ju lehekülje mõttetult pikaks, kel vaja, kül see õige lehekülje avaks. Mitmest reast üldse jutt käiks?
_________________
 |
|
| Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 00:37:02
|
|
|
andrusny, tiba üle 1000 rea. Peab vist lehekülgede peale mõtlema jah.
| php:
|
$sql_numbrid= mysql_query("select * from $viking order by nr DESC");
|
Proovisin veel nii, et võtsin lehe lähtekoodi (mis on krdima pikk) ja salvestasin selle failisse ja laadisin üles. See laadis isegi veel kauem.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
p2tu
HV kasutaja

liitunud: 06.11.2001
|
18.11.2012 01:05:31
|
|
|
| No 1000 rida html'is laebki aeglaselt. Siin oleks ainuke lahendis mingi preload jqueryga vms. Lihtsam on sul teha lehed 100 kaupa.
|
|
| Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
24 |
|
| tagasi üles |
|
 |
2ndalpha
HV kasutaja

liitunud: 03.11.2004
|
18.11.2012 01:27:56
|
|
|
Ega Sa mingeid stiile jQueryga külge ei pane. Nii suure DOM puu läbikäimine võtab kaua aega.
Igasugu muude spekulatsioonide vältimiseks soovitan vaadata mille peale täpsemalt aeg kulub: http://tools.pingdom.com/fpt/
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
22 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 01:31:38
|
|
|
p2tu, ok, teen siis mitu lehte.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
mikk150
HV kasutaja
liitunud: 04.05.2006
|
18.11.2012 16:21:41
|
|
|
| p6hjus miks kaua laeb on andmete k2ttesaamine aeglastelt hdd delt. midagi sinna teha ei saa. olen ise ka staatilist tabelit genereerinud, kuna nii on kiirem
|
|
| Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
| tagasi üles |
|
 |
2ndalpha
HV kasutaja

liitunud: 03.11.2004
|
18.11.2012 16:36:17
|
|
|
| mikk150 kirjutas: |
| p6hjus miks kaua laeb on andmete k2ttesaamine aeglastelt hdd delt. midagi sinna teha ei saa. olen ise ka staatilist tabelit genereerinud, kuna nii on kiirem |
Kust Sa sellisele järeldusele jõudsid?
Baas võib kõiki kirjeid ka mälus hoida. 1000 kirjet nüüd küll mingi eriline andmehulk ei ole.
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
22 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 18:42:01
|
|
|
mikk150, eks mul see loop on ka üsna mahukas. Andmed tuleb andmebaasist võtta, kõiki numbreid võrrelda kasutaja poolt sisestatud numbritega, võrrelda seda hulka andmebaasi teise tabeliga, leida tabamus ja võidusumma. Vastavalt sellele luua tabel. Vaatan koodi ka täpsemalt üle, kuidas seda lühendada, kuna praegusel juhul on liiga palju ebavajalikku CSS-i, mis on by default brauseri poolt valitud.
Kui kasutada veel tabeli värviliselt kuvamist, siis on asi eriti hull. Korra tuli isegi planet.ee poolt teade, et mingi limiit on ületatud ja pean maksma lisa ning leht on blokeeritud. Rohkem pole õnneks tulnud ja leht ikkagi avanes uue refreshiga.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
spreiii
HV kasutaja
liitunud: 27.12.2008
|
18.11.2012 19:00:38
|
|
|
| Ehk oleks võimalik sobivad vastused juba ühes SQL Query's kätte saada, et ei peaks näiteks iga rea korral uuesti andmebaasist midagi küsima (juhul kui hetkel nii on)?
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
23 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 19:24:53
|
|
|
| spreiii kirjutas: |
| Ehk oleks võimalik sobivad vastused juba ühes SQL Query's kätte saada, et ei peaks näiteks iga rea korral uuesti andmebaasist midagi küsima (juhul kui hetkel nii on)? |
Toon lühidalt välja koodi, mis tabeli loob:
| php:
|
$sql_numbrid= mysql_query("select * from $viking order by nr DESC limit $_GET[nt]"); if(in_array($andmed_numbrid[$väärtus ], $array_numbritest)){ if($väärtus=="lisa1" or $väärtus=="lisa2"){ $värv="green"; $y=$y+1; } else{ $värv="red"; $x=$x+1; } $andmed_numbrid[$väärtus]="<span style='color:$värv$joon'>$andmed_numbrid[$väärtus]</span>"; $stiil[$väärtus]=" style='height:18px;width:18px;border:2px solid $värv;$p'"; } else{ $andmed_numbrid[$väärtus]="<span style='font-weight:normal$joon'>$andmed_numbrid[$väärtus]</span>"; $stiil[$väärtus]=" style='height:18px;width:18px;border:2px solid $prgb;$p'"; } if($v_puudub==1){ $voit="<span style='color:blue;text-decoration:line-through;cursor:help' title='Sisaldab".$v_t_51.$v_t_5.$v_t_4.$v_t_3.$v_t_21." See summa arvutatakse kõiki neid tabamusi arvestades, kuid mahakriipsustatud võidunumbrid ei ole täpsed, kuna mul pole nende kohta andmeid. Aga see annab umbmäärase summa, palju see pilet võitis. Summa arvutamisel lähtutakse viimastest tabamuste väärtusest, mis on välja toodud sellest tabelist paremal ülal asuvas väikeses tabelis.'>".$voidusumma." €</span>"; } else{ $voit="<span style='color:blue;cursor:help' title='Sisaldab".$v_t_51.$v_t_5.$v_t_4.$v_t_3.$v_t_21." See summa arvutatakse kõiki neid tabamusi arvestades.'>".$voidusumma." €</span>"; } if($x>1){ $tabamus=""; } else{ $tabamus="<span style='color:green'>$x</span>"; $nool=">"; } if( $x==2 && $y>0 or $x==5 && $y>0){ $y=1; $tabamus="<span style='color:green'>$x+$y</span>"; $nool=">"; } if($x==6 && $z>0){$tabamus="<span style='color:green'>$x+</span>"; $nool=">"; } echo "<tr><td>". $andmed_numbrid[nr ]. "</td><td". $stiil[I ]. ">". $andmed_numbrid[I ]. "</td><td". $stiil[II ]. ">". $andmed_numbrid[II ]. "</td><td". $stiil[III ]. ">". $andmed_numbrid[III ]. "</td><td". $stiil[IV ]. ">". $andmed_numbrid[IV ]. "</td><td". $stiil[V ]. ">". $andmed_numbrid[V ]. "</td><td". $stiil[VI ]. ">". $andmed_numbrid[VI ]. "</td><td></td><td". $stiil[lisa1 ]. ">". $andmed_numbrid[lisa1 ]. "</td><td". $stiil[lisa2 ]. ">". $andmed_numbrid[lisa2 ]. "</td><td></td><td>". $andmed_numbrid[onnenumber ]. "</td><td style='width:20px'>". $nool. "</td><td>". $tabamus. "</td><td>". $voit. "</td></tr>"; }
|
Ärge siis näkku lööge, kui midagi on totaalselt valesti tehtud. Hobi mõttes olen progenud.
Aga praegusel juhul võetakse kõik andmed andmebaasist korraga?
EDIT: mikk150, pilt su allkirjas venib.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
spreiii
HV kasutaja
liitunud: 27.12.2008
|
18.11.2012 19:39:14
|
|
|
Uurin veel koodi, kuid esimese rea kohta võin öelda, et praegusel juhul on võimalik SQL Injection.
Uuri veidi: http://en.wikipedia.org/wiki/SQL_injection
Probleemne koht täpsemalt siis: $_GET[nt]
| php:
|
$sql_numbrid= mysql_query("select * from $viking order by nr DESC limit $_GET[nt]");
|
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
23 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 20:08:33
|
|
|
spreiii, on nii õige?: (Unustan alati sellised asjad ära. )
$viking on samas failis $viking="viking". See sai alguses katsetamise eesmärgil pandud, et oma vea tõttu ei rikuks andmebaasi tabelit, kus andmed on juba õigesti sisestatud. Ja võibolla kasutan veel ja siis on mugav $viking asemele panna mingi muu tabeli nimetus, et tolle tabeli peal proovida asju.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
mikk150
HV kasutaja
liitunud: 04.05.2006
|
18.11.2012 20:48:53
|
|
|
| 2ra kasuta " m2rki, kasuta php koodis ' m2rki. kiirem
|
|
| Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
| tagasi üles |
|
 |
spreiii
HV kasutaja
liitunud: 27.12.2008
|
18.11.2012 20:53:27
|
|
|
mysql_real_escape_string on jah üldjuhul piisav kaitse.
Edit: ideaalne oleks veel muidugi kontrollida, kas tegu on numbriga:
| php:
|
if(! is_numeric($number)) $number = 10; // määrame numbri käsitsi, juhul kui see ei vasta nõuetele
|
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
23 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 20:57:02
|
|
|
spreiii, andmebaasi sisestamise jaoks on mulle õpetatud kasutama htmlspecialchars().
mikk150, ee, aga ülakoma kasutades võtab PHP muutujat kui ennast, aga mitte muutujat, kui selle väärtust. Ehk siis kui $muutuja=1, siis echo "$muutuja" kirjutab "1", aga echo '$muutuja' kirjutab "$muutuja". Või sain ma sust valesti aru?
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
|
| Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
18.11.2012 22:44:24
|
|
|
| Ma ei tea, olen harjunud jutumärgiga.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
18.11.2012 23:48:17
|
|
|
See ' pole ülakoma vaid ühekordne jutumärk. Ülakoma on see ´ või vähemasiti mina tean seda selliselt.
_________________
 |
|
| Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
| tagasi üles |
|
 |
p2tu
HV kasutaja

liitunud: 06.11.2001
|
19.11.2012 01:11:32
|
|
|
1000 rea jaoks päringu optimeerimine ei anna sul soovitud tulemust, kuvamine kiiremaks ei muutu.
Probleem ei ole sul päringus vaid kuvamises endas. Päring ise käib ilmselt 0.0... sekundit.
Seda saad eraldi vaadata, kiire google - http://stackoverflow.com/questions/8156095/calculating-time-of-a-query-php-mysql
See 1000 rida lihtsalt html'is veebilehele kuvatakse aeglaselt muudel põhjustel nagu ka ülevalpool mainiti - brauser ise, html keel, hdd kiirus, netikiirus (suhtlus serveriga) jne.
|
|
| Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
24 |
|
| tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
19.11.2012 15:35:03
|
|
|
1000 rida on nii minimaalne andmebaas, et seal küll SQL'i taha midagi ei jää, veelvähem mingi faili lugemise taha. Nagu p2tu ütles, siis päring ise võtab ilmselt 0.0.. sekundit ja selle taha sul küll midagi ei jää.
Samamoodi on su while täiesti basic ning seegi ei võta peaaegu üldse aega, niiet aeglus peab ikkagi olema kinni juba html'i näitamises.
_________________ http://nodejs.org/
"I'm also a person. Programming is just one thing I do." |
|
| Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
| tagasi üles |
|
 |
2ndalpha
HV kasutaja

liitunud: 03.11.2004
|
19.11.2012 15:39:44
|
|
|
Nagu ma enne juba ütlesin, siis kõige lihtsam on mõõta kuluvat aega http://tools.pingdom.com/fpt/ abil
Muidugi võib ka Firebugi või Chromega seda teha.
Siis näeb kas asi jääb serveri, allalaadimise, renderdamise või muu taha.
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
22 |
|
| tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
19.11.2012 16:19:04
|
|
|
Olen üsnagi kindel, et su probleem on selles koodireas:
if(in_array($andmed_numbrid[$väärtus], $array_numbritest)){
Nii palju kui aru saan on tegu üsnagi kuluka operatsiooniga. Eeldades, et too $array_numbritest on samuti tuhatkond rida tehtakse sul seal umbes pool miljonit võrdlust per page load. Piirates kuvatavate ridade arvu 1000 pealt 100'le vähendaks selle ainult 1M pealt 100k peale mis kokkuvõttes ei ole ikkagi normaalne efektiivsus.
Lahenda asi SQL'is üheainsa päringuga, saad oluliselt kiirema tulemuse.
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
| Kommentaarid: 107 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
87 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
19.11.2012 17:31:20
|
|
|
Ho Ho, $array_numbritest on kasutaja poolt sisestatud numbrid, mida on 1-11. Kuna andmebaasis on natuke üle 1000 rea, siis tähendab see 1000*7*11 võrdlust.
Aga tundub, et jääb jah htmli näitamise taha kogu see tabeli näitamine. Võtsin lehe source, laadisin üles ja laeb samamoodi kaua, võiks öelda, et mõned sekundid ehk kauemgi. Tegelikult minu küsimus oligi pigem selles, et kas antud leht on mõistlik luua tabeli lahtritena või kuidagi muudmoodi. Aga ega vist paremat lahendust poleks ka, kui ainult piiramine ...
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
19.11.2012 17:36:43
|
|
|
Mmm, my bad. Üle rea lugedes jäi mulje, et see on läbi ajaloo kõigi välja loositud numbrite hulk.
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
| Kommentaarid: 107 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
87 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
19.11.2012 17:43:07
|
|
|
| Ho Ho, see on jah while-statementis sedasi, et kõigepealt on uusim loosimine, mis hetkel on 1027. Kontrollib, kas I on esindatud numbrite seal. Kui on, siis punane, kui mitte, siis tavaline tekst ja lahter. Ja sedasi kõigi 7 numbriga I-VI, lisa1,lisa2, mis ühel loosimisel on välja loositud. Ja järjest nii kõigi loosimistega. Ja see kõik peaks teostuma minu puhul ühe päringuga? $sql_numbrid=mysql_query("select * from $viking order by nr DESC limit ".mysql_real_escape_string($_GET[nt]));
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
2ndalpha
HV kasutaja

liitunud: 03.11.2004
|
19.11.2012 17:59:18
|
|
|
| Kui Sa CSS-i ega javascripti külge ei pane, kas siis on ikka aeglane?
|
|
| Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
22 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
19.11.2012 19:16:08
|
|
|
Miks sul seal nii röögatult palju tühje tabeliridu-tulpasid on?
Samuti saaksid juba puhtalt faili tirimise pealt päris korraliku kokkuhoiu kui sinna dropdownidesse ei lahmi kõiki 1000+ valikut vaid näiteks 1-10 ning ülejäänud mingi mõistliku sammuga. Veel parem kui teed selle lihtsalt teksti sisestus kastiks. Veel suurema kokkuhoiu saaksid kui kasutaksid normaalset CSS'i mitte ei kleebiks stiili igale tabeli lahtrile ühekaupa külge. Hetkel on sul too fail pea 1.5 MB puhast teksti
Olen päris kindel, et hetkeseisuga on probleemiallikas just see inline stiili määramine korrektse CSS'i kasutamise asemel.
[edit]
See ei ole CSS'i kasutamine (üksainus rida tabelist, reavahetused minu poolt näitamaks kuivõrd röögatult suure raiskamisega tegu):
| html:
|
<td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>4 </span></td> <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>18 </span></td> <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal;text-decoration:underline'>20 </span></td> <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>25 </span></td> <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>37 </span></td> <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>38 </span></td> <td style='height:18px;width:18px;border:2px solid green;'><span style='color:green'>11 </span></td> <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>17 </span></td> <td style='width:20px'></td> </tr>
|
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
| Kommentaarid: 107 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
87 |
|
| tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
19.11.2012 19:17:51
|
|
|
Kui aeglaselt teil need siis laevad?
Spoiler 
|
|
| Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
| tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
19.11.2012 19:45:55
|
|
|
Tekib siinkohal sama küsimus. Minul laeb leht 507ms'iga mis üldiselt on nagu piisavalt kiire või nii.
Spoiler 
|
|
| Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
| tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
19.11.2012 19:47:05
|
|
|
Lükake see "Näita kogu tabelit" linnuke ka ikka sisse.
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
| Kommentaarid: 107 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
87 |
|
| tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
19.11.2012 19:55:57
|
|
|
| Ho Ho kirjutas: |
| Lükake see "Näita kogu tabelit" linnuke ka ikka sisse. |
Ei läinud eriti hullemaks nagu
Spoiler 
Samuti ei ole profileris nagu midagi hullu
Spoiler 
|
|
| Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
| tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
19.11.2012 20:13:52
|
|
|
Neti kiirus siis järelikult sul omal madal kogu tabel ja värvilisena, siis tuli andmeid serverist üle 1,5M kuna mul ka aeglane ühendus, siis läks aega suht , et siis kokkuvõttes neti kiirus jääb aeglaseks vist. Mis seal üldse selle pea 2M välja annab? Pilte ju pole ning 1000rida arve ei tohiks ometi nii palju mahtu võtta. Või võtab?
_________________
 |
|
| Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
| tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
19.11.2012 20:16:57
|
|
|
| andrusny kirjutas: |
| Mis seal üldse selle pea 2M välja annab? |
kolm 1000 elemendiga dropdowni + inline stiiliga 1000 rea ja kümnekonna tulbaga tabel
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
| Kommentaarid: 107 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
87 |
|
| tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
19.11.2012 20:29:02
|
|
|
Jah uurisin ise ka hetkel koodi
<td style=3D'height:18px;width:18px;border:2px soli=
d rgb(138,138,136);background:rgb(138,138,136)'><span style=3D'font-weig=
ht:normal'>41</span></td> |
vajaliku sisu on ju ainult niipalju, võimalik, et annaks ka selle span sealt välja visata.
See osa tuleks vast ringi teha, kiirus kindlasti kasvaks, kui css anda ette algul, mitte igal dt real uuesti ja mulle tundub, et sama jama on vist ka JavaScriptiga tehtud, otse koodi liialt palju kirjutatud, mis saaks ehk paari funktsiooniga sisse lugeda.
_________________
 |
|
| Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
19.11.2012 22:10:29
|
|
|
mikk36, index2.php on kärbitud natuke, kuskil tuli väike aps ka vahele, et tabamust ja võidusummat ei näita, aga ma muudan CSS-i. Inline kaotan ära.
Edit: Tegin muudatused ära ja tabel muutus poole kiiremaks. Varem laadis 12 sek, nüüd 6 sek -> http://liivanelord.planet.ee/viking/index3.php?1=6&2=2&3=34&4=11&5=45&6=46&7=47&8=9&9=14&10=16&11=5&tabel=on&vt=Vaata Klikake siis kindlasti sellele lingile, kuna see on index3.php, et teil ei tekiks segadust.
CSS tõin faili etteotsa. Hiljem vaatan üle, kas on veel midagi vaja ja siis peab järgi proovima, ega vigu pole sisse sattunud.
NB! Vaikimisi keelasin ära täispika tabeli näitamise, kui pole küpsised salvestatud. Kogu tabeli nägemiseks vali "Näita kogu tabelit" ja vajuta Vaata.
EDIT2:
| andrusny kirjutas: |
Jah uurisin ise ka hetkel koodi
<td style=3D'height:18px;width:18px;border:2px soli=
d rgb(138,138,136);background:rgb(138,138,136)'><span style=3D'font-weig=
ht:normal'>41</span></td> |
vajaliku sisu on ju ainult niipalju, võimalik, et annaks ka selle span sealt välja visata.
See osa tuleks vast ringi teha, kiirus kindlasti kasvaks, kui css anda ette algul, mitte igal dt real uuesti ja mulle tundub, et sama jama on vist ka JavaScriptiga tehtud, otse koodi liialt palju kirjutatud, mis saaks ehk paari funktsiooniga sisse lugeda. |
See height ja width oli millegipärast vajalik, kui ma mäletan. Asi oli vist selles, et osad numbrid on lühemad, kui teised. Samuti border:2px peab olema, kuna mõnel real juhtub, et polegi ühtegi tabamust. Seega on osad ruudud suuremad, kui teised. Background on ainult värvilise tabeli loomise jaoks.
Span ei oska ma kuidagi ära kaotada, sest alles peab jääma kasutada ka allajoonismisvõimalus. See ilmub siis, kui õnnenumber on põhinumbrite hulgas. Allajoonitud peab olema nii punane tekst, kui ta tavaline must tekst.
Aga vaatan, ehk suudan midagi välja mõelda, kood tuleb lihtsalt natuke pikem selle võrra.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
Lordlesta
Kreisi kasutaja
liitunud: 05.07.2005
|
20.11.2012 00:05:42
|
|
|
| tsitaat: |
Span ei oska ma kuidagi ära kaotada, sest alles peab jääma kasutada ka allajoonismisvõimalus. See ilmub siis, kui õnnenumber on põhinumbrite hulgas. Allajoonitud peab olema nii punane tekst, kui ta tavaline must tekst.
|
| html:
|
table td { height: 18px; width: 18px; border: 2px solid #8a8a88; background: #8a8a88; } .underline { text-decoration: underline; } </style> <td class="underline">41 </td>
|
|
|
| Kommentaarid: 31 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
27 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
kuunar
Kreisi kasutaja
liitunud: 20.02.2009
|
03.05.2013 16:39:35
|
|
|
Loto on siin foorumis valus teema.
|
|
| Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
03.05.2013 16:47:48
|
|
|
| kuunar kirjutas: |
Loto on siin foorumis valus teema.  |
Aga me alustame uue hooga ja seekord läbipaistvamalt.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
|
| Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
05.05.2013 21:34:33
|
|
|
Spoiler 
| LiivaneLord kirjutas: |
Redikate, nagu ma aru saan, siis see tabel luuakse javascriptiga. Minul on aga andmed andmebaasis ning lehe laadimisel toimub alati erinevate numbrite kokkuliitmine ning statistika lubamisel arvutab nende numbrite esinemissagedus jms. Ma ei kujuta ette, kuidas antud tabel javascriptiga valmis vorpida. :S
Algul tegin statistika püsivaks ehk uute andmete sisestamisel tehti see kalkulatsioon kohe ära ja lisati andmebaasi, aga hiljem lisasin veergude kaupa eraldi statistika loomise võimaluse ning siis kadus asja mõte ära. Lehe laadimisaega see praktiliselt ei muutnud.
Olen otsustanud, et lehekülgi ma ei tee. Sellel ei ole praktilist vajadust. Vaikimisi on nähtav vaid 100 viimast rida ja 90+% juhtudel sellest peaks piisama. Kogu tabel on vaid lisavõimalus ning ka praegu ei kulu selle laadimiseks väga kaua aega.  |
Nii, tegin numbrite tabeli ka javascripti versioonis. Server loob php-ga javascripti, kus on array "nr", milles on subarrayd, kus iga subarray kohta on kogu info loosi kohta (ehk andmed andmebaasis). Teine array on "tdstiil", mis sisaldab töödeldud infot (tabeli välja stiil, tabamus, võit jms). Ma ei tea, kas see oli õige viis seda teha, kuid see oli minu esimene nägemus asjast.
Javascriptiga loodud index4.php: http://liivanelord.planet.ee/viking/index4.php?1=16&2=27&3=22&4=7&5=20&6=36&7=30&tabel=on&vt=Vaata
Tavaline index.php: http://liivanelord.planet.ee/viking/index.php?1=16&2=27&3=22&4=7&5=20&6=36&7=30&tabel=on&vt=Vaata
Nagu näha, siis Javascriptiga versioon laeb vaat et aeglasemalt isegi. Javascripti koodis on kindlasti üleliigseid ridasid, kuna spikerdasin teiste koodide pealt, et aru saada, kuidas HTML koodi loomine javascriptiga käib.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
05.05.2013 22:47:55
|
|
|
index4.php: 608.39 ms
index.php: 429.87 ms
Üldiselt ma ei näe milles probleem. <1s on liiga pikk loading time? :p
Oleks mul aega krt, prooviks ise ka seda tabeli näitamist teha.
_________________ http://nodejs.org/
"I'm also a person. Programming is just one thing I do." |
|
| Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
| tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
05.05.2013 22:53:40
|
|
|
| Eks osa laadimise aja pikenemisest on põhjustatud ka suuremast failist, mida alla on vaja laadida (382 KB vs 463 KB)
|
|
| Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
| tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
05.05.2013 23:01:25
|
|
|
| Redikate kirjutas: |
index4.php: 608.39 ms
index.php: 429.87 ms
Üldiselt ma ei näe milles probleem. <1s on liiga pikk loading time? :p
Oleks mul aega krt, prooviks ise ka seda tabeli näitamist teha. |
Ei, enam probleemi eriti ei ole, aga enne seda oli küll laadimine üsna pikk. Javascriptiga loodud tabelit proovisin vaid huvipärast.
|
|
| Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
| tagasi üles |
|
 |
|