Avaleht
uus teema   vasta Tarkvara »  WWW »  Leht laeb aeglaselt väga suure tabeli tõttu 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:  
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 17.11.2012 21:16:25 Leht laeb aeglaselt väga suure tabeli tõttu vasta tsitaadiga

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:
  1. 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
vaata kasutaja infot saada privaatsõnum
spreiii
HV kasutaja

liitunud: 27.12.2008



Autoriseeritud ID-kaardiga
sõnum 17.11.2012 22:55:17 vasta tsitaadiga

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

liitunud: 20.03.2006




sõnum 17.11.2012 23:12:37 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 00:37:02 vasta tsitaadiga

andrusny, tiba üle 1000 rea. Peab vist lehekülgede peale mõtlema jah.

php:
  1. $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
vaata kasutaja infot saada privaatsõnum
p2tu
HV kasutaja
p2tu

liitunud: 06.11.2001



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 01:05:31 vasta tsitaadiga

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

liitunud: 03.11.2004



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 01:27:56 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 01:31:38 vasta tsitaadiga

p2tu, ok, teen siis mitu lehte. icon_wink.gif
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk150
HV kasutaja

liitunud: 04.05.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 16:21:41 vasta tsitaadiga

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

liitunud: 03.11.2004



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 16:36:17 vasta tsitaadiga

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? icon_smile.gif
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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 18:42:01 vasta tsitaadiga

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. icon_biggrin.gif Rohkem pole õnneks tulnud ja leht ikkagi avanes uue refreshiga. icon_smile.gif
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
spreiii
HV kasutaja

liitunud: 27.12.2008



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 19:00:38 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 19:24:53 vasta tsitaadiga

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:
  1.                                                                 $sql_numbrid=mysql_query("select * from $viking order by nr DESC limit $_GET[nt]");
  2.                                                                 while($andmed_numbrid=mysql_fetch_array($sql_numbrid)){
  3.                                                                                         if(in_array($andmed_numbrid[$väärtus], $array_numbritest)){
  4.                                                                                                 if($väärtus=="lisa1" or $väärtus=="lisa2"){
  5.                                                                                                         $värv="green";
  6.                                                                                                         $y=$y+1;
  7.                                                                                                 }
  8.                                                                                                 else{
  9.                                                                                                         $värv="red";
  10.                                                                                                         $x=$x+1;
  11.                                                                                                 }
  12.                                                                                                 $andmed_numbrid[$väärtus]="<span style='color:$värv$joon'>$andmed_numbrid[$väärtus]</span>";
  13.                                                                                                 $stiil[$väärtus]=" style='height:18px;width:18px;border:2px solid $värv;$p'";
  14.                                                                                         }
  15.                                                                                         else{
  16.                                                                                                 $andmed_numbrid[$väärtus]="<span style='font-weight:normal$joon'>$andmed_numbrid[$väärtus]</span>";
  17.                                                                                                 $stiil[$väärtus]=" style='height:18px;width:18px;border:2px solid $prgb;$p'";
  18.                                                                                         }
  19.                                                                                         if($v_puudub==1){
  20.                                                                                                 $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>";
  21.                                                                                         }
  22.                                                                                         else{
  23.                                                                                                 $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>";
  24.                                                                                         }
  25.                                                                                 if($x>1){
  26.                                                                                         if($x==2 && empty($y)){
  27.                                                                                                 $tabamus="";
  28.                                                                                         }
  29.                                                                                         else{
  30.                                                                                                 $tabamus="<span style='color:green'>$x</span>";
  31.                                                                                                 $nool=">";
  32.                                                                                         }
  33.                                                                                         if( $x==2 && $y>0 or $x==5 && $y>0){
  34.                                                                                                 $y=1;
  35.                                                                                                 $tabamus="<span style='color:green'>$x+$y</span>";
  36.                                                                                                 $nool=">";
  37.                                                                                         }
  38.                                                                                         if($x==6 && $z>0){$tabamus="<span style='color:green'>$x+</span>";
  39.                                                                                         $nool=">";
  40.                                                                                 }
  41.                                                                         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>";
  42.                                                                 }




Ärge siis näkku lööge, kui midagi on totaalselt valesti tehtud. Hobi mõttes olen progenud. icon_razz.gif

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

liitunud: 27.12.2008



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 19:39:14 vasta tsitaadiga

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:
  1. $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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 20:08:33 vasta tsitaadiga

spreiii, on nii õige?: (Unustan alati sellised asjad ära. icon_biggrin.gif)

php:
  1. sql_numbrid=mysql_query("select * from $viking order by nr DESC limit ".mysql_real_escape_string($_GET[nt]));


$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. icon_smile.gif
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk150
HV kasutaja

liitunud: 04.05.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 20:48:53 vasta tsitaadiga

2ra kasuta " m2rki, kasuta php koodis ' m2rki. kiirem
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
spreiii
HV kasutaja

liitunud: 27.12.2008



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 20:53:27 vasta tsitaadiga

mysql_real_escape_string on jah üldjuhul piisav kaitse. icon_smile.gif
Edit: ideaalne oleks veel muidugi kontrollida, kas tegu on numbriga:
php:
  1. $number = mysql_real_escape_string($_GET[nr]);
  2. 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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 20:57:02 vasta tsitaadiga

spreiii, andmebaasi sisestamise jaoks on mulle õpetatud kasutama htmlspecialchars(). icon_razz.gif

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

liitunud: 08.08.2002




sõnum 18.11.2012 22:30:50 vasta tsitaadiga

mikk150 kirjutas:
2ra kasuta " m2rki, kasuta php koodis ' m2rki. kiirem
http://nikic.github.com/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 18.11.2012 22:44:24 vasta tsitaadiga

Ma ei tea, olen harjunud jutumärgiga.
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 18.11.2012 23:48:17 vasta tsitaadiga

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

liitunud: 06.11.2001



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 01:11:32 vasta tsitaadiga

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

liitunud: 30.12.2005




sõnum 19.11.2012 15:35:03 vasta tsitaadiga

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

liitunud: 03.11.2004



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 15:39:44 vasta tsitaadiga

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

liitunud: 16.02.2002




sõnum 19.11.2012 16:19:04 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 17:31:20 vasta tsitaadiga

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

liitunud: 16.02.2002




sõnum 19.11.2012 17:36:43 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 17:43:07 vasta tsitaadiga

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

liitunud: 03.11.2004



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 17:59:18 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 18:44:16 vasta tsitaadiga

2ndalpha kirjutas:
Kui Sa CSS-i ega javascripti külge ei pane, kas siis on ikka aeglane?

Muutub kiiremaks küll. Näiteks index2.php failis -> http://liivanelord.planet.ee/viking/index2.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
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 19.11.2012 19:16:08 vasta tsitaadiga

Miks sul seal nii röögatult palju tühje tabeliridu-tulpasid on? icon_eek.gif

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 icon_rolleyes.gif


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:
  1. <td>1027</td>
  2. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>4</span></td>
  3. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>18</span></td>
  4. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal;text-decoration:underline'>20</span></td>
  5. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>25</span></td>
  6. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>37</span></td>
  7. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>38</span></td>
  8. <td></td>
  9. <td style='height:18px;width:18px;border:2px solid green;'><span style='color:green'>11</span></td>
  10. <td style='height:18px;width:18px;border:2px solid #f6f6f0;'><span style='font-weight:normal'>17</span></td>
  11. <td></td>
  12. <td>20</td>
  13. <td style='width:20px'></td>
  14. <td></td>
  15. <td></td>
  16. </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
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 19.11.2012 19:17:51 vasta tsitaadiga

Kui aeglaselt teil need siis laevad?
Spoiler Spoiler Spoiler
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Redikate
HV veteran
Redikate

liitunud: 30.12.2005




sõnum 19.11.2012 19:45:55 vasta tsitaadiga

Tekib siinkohal sama küsimus. Minul laeb leht 507ms'iga mis üldiselt on nagu piisavalt kiire või nii.
Spoiler Spoiler Spoiler
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 19.11.2012 19:47:05 vasta tsitaadiga

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

liitunud: 30.12.2005




sõnum 19.11.2012 19:55:57 vasta tsitaadiga

Ho Ho kirjutas:
Lükake see "Näita kogu tabelit" linnuke ka ikka sisse.

Ei läinud eriti hullemaks nagu
Spoiler Spoiler Spoiler


Samuti ei ole profileris nagu midagi hullu
Spoiler Spoiler Spoiler
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 19.11.2012 20:13:52 vasta tsitaadiga

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

liitunud: 16.02.2002




sõnum 19.11.2012 20:16:57 vasta tsitaadiga

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

liitunud: 20.03.2006




sõnum 19.11.2012 20:29:02 vasta tsitaadiga

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.
<td><span>41</span></td>


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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 19.11.2012 22:10:29 vasta tsitaadiga

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.
<td><span>41</span></td>


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

liitunud: 05.07.2005



Autoriseeritud ID-kaardiga
sõnum 20.11.2012 00:05:42 vasta tsitaadiga

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:
  1. <style type="text/css">
  2. table td { height: 18px; width: 18px; border: 2px solid #8a8a88; background: #8a8a88; }
  3. .underline { text-decoration: underline; }
  4. </style>
  5.  
  6. <td>42</td>
  7. <td class="underline">41</td>
  8. <td>40</td>
  9. <td>39</td>
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 27
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 03.05.2013 16:37:38 vasta tsitaadiga

Nonii, tegin eile ja täna plaanilisi muudatusi lehel ning muuseas näppisin ka CSS-i. Mida arvate nüüd tabeli lähtekoodist? icon_razz.gif -> http://liivanelord.planet.ee/viking/?1=16&2=27&3=24&4=28&5=20&6=23&tabel=on&vt=Vaata

Võrreldes ühe varasema versiooniga on laadimine poole kiirem umbes. Väga hästi mõõta ei saa, kuna nüüd on mul megase neti asemel 5 mega, aga enam-vähem on aru saada -> http://liivanelord.planet.ee/viking/index3.php?1=16&2=27&3=24&4=28&5=20&6=23&tabel=on&vt=Vaata

Javascripti osas muudatusi ei ole teinud, ei oska. Javascript üldiselt on nii raske minu jaoks. icon_sad.gif
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
kuunar
Kreisi kasutaja

liitunud: 20.02.2009



Autoriseeritud ID-kaardiga
sõnum 03.05.2013 16:39:35 vasta tsitaadiga

Loto on siin foorumis valus teema. icon_lol.gif
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 03.05.2013 16:47:48 vasta tsitaadiga

kuunar kirjutas:
Loto on siin foorumis valus teema. icon_lol.gif

icon_biggrin.gif

Aga me alustame uue hooga ja seekord läbipaistvamalt.
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
Redikate
HV veteran
Redikate

liitunud: 30.12.2005




sõnum 03.05.2013 21:12:28 vasta tsitaadiga

http://jbrantly.github.io/bigtable/ => miljon rida.
http://jsfiddle.net/ThinkingStiff/gyaGk/ => päris kiire 1000 rida

Kuid üldiselt soovitan jagada lehekülgedeks + sortimine + search.
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 05.05.2013 21:34:33 vasta tsitaadiga

Spoiler Spoiler Spoiler

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. icon_eek.gif Javascripti koodis on kindlasti üleliigseid ridasid, kuna spikerdasin teiste koodide pealt, et aru saada, kuidas HTML koodi loomine javascriptiga käib. icon_razz1.gif
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
Redikate
HV veteran
Redikate

liitunud: 30.12.2005




sõnum 05.05.2013 22:47:55 vasta tsitaadiga

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

liitunud: 21.02.2004




sõnum 05.05.2013 22:53:40 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006



Autoriseeritud ID-kaardiga
sõnum 05.05.2013 23:01:25 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Leht laeb aeglaselt väga suure tabeli tõttu
[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.