Comunitatea PHP Romania

Prima pagină Web Librarii Javascript Refresh

Refresh

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library, Ext, script.aculo.us

Mesaj Joi Apr 19, 2012 11:29 am
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

Salut! Am cautat pe net problema mea, dar nu prea am gasit, iar ce am gasit este prea complex pentru un incepator ca mine in AJAX.
Problema: am o pagina in php si vreau doar o particica sa se refresh-eze o data la o secunda.
Scriptul/Fisierul care vreau sa se refresh-eze este:

<?php
    include "user_configs.php";
   echo 'Nickname: '.$nickname;
   
   //am afisat nickname-ul, acum afisam viata
   $viata = ''; //am definit variabila pentru viata
   // Se face conectarea la serverul MySQL si selectarea bazei de date
       $conn = mysql_connect("mysql16.000webhost.com", "a4623475_ss", "123!@#qwe") or
          die("Nu m-am putut conecta la serverul MySQL");
       $selectdb = mysql_select_db('a4623475_ss');
   if(get_magic_quotes_gpc()) { $viata = stripslashes($viata); }
   $viata = mysql_real_escape_string($viata);
   $sql2 = "SELECT viata FROM `player` WHERE `username` LIKE '%$username%'";
   $resql2 = mysql_query($sql2, $conn) or trigger_error(E_USER_ERROR);
       if (mysql_num_rows($resql2) == 0) { echo 'EROARE !!'; }
      else {
          while ($rand2 = mysql_fetch_assoc($resql2)) {
             // Elimina caracterele "\" care au fost adaugate de "mysql_real_escape_string()"
             $col2 = stripslashes($rand2['viata']);
            echo '<p>Viata: '.$col2;
         }
       }
   $max_viata = ''; //am definit variabila pentru MAX viata
   if(get_magic_quotes_gpc()) { $max_viata = stripslashes($max_viata); }
   $max_viata = mysql_real_escape_string($max_viata);
   $sql3 = "SELECT max_viata FROM `player` WHERE `username` LIKE '%$username%'";
   $resql3 = mysql_query($sql3, $conn) or trigger_error(E_USER_ERROR);
       if (mysql_num_rows($resql3) == 0) { echo 'EROARE !!'; }
      else {
          while ($rand3 = mysql_fetch_assoc($resql3)) {
             // Elimina caracterele "\" care au fost adaugate de "mysql_real_escape_string()"
             $col3 = stripslashes($rand3['max_viata']);
            echo ' / '.$col3;
         }
       }
?>


Nu ma pricep in ajax asa ca am apelat la voi.
Multumes anticipat !

Mesaj Joi Apr 19, 2012 11:36 am
Birkoff Avatar utilizator
Senior Member

Mesaje: 6140
Localitate: Bucuresti

poti baga scriptul in iframe si sa ii dai refres doar la acel iframe

Mesaj Joi Apr 19, 2012 12:28 pm
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

si daca nu as vrea sa-l bag intr-un iframe... ma poate ajuta cineva?
Apropo: tot codul acela de mai sus, reprezinta game-right.php .

Mesaj Joi Apr 19, 2012 1:04 pm
EoKlaus Average Member

Mesaje: 133
Localitate: Grecia
Te ajuta acest exemplu:


<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"> </script>
<script type="text/javascript">

$(document).ready(function(){

   $('#refresh').click(function(){
   
      $('#load').load('pagina.php');
   
   });

});

</script>
</head>
<body>

<button id="refresh">Refresh</button>

<br>
<br>
<div id="load"><?php include("pagina.php"); ?></div>

</body>
</html>


?> Unde vezi pagina.php editezi pagina care e inclusa in fisierul tau.
Copilaria nu este de la nastere pana la o anumita varsta, iar la o anumita varsta copilul a crescut si ia toate lucrurile copilaresti si le pune la o parte. Copilaria este regatul unde nu moare nimeni.

Imagine
[img=http://klaus-blog.hi2.ro/fisiere/imagine.php]

Mesaj Joi Apr 19, 2012 1:50 pm
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

EoKlaus, mersi DAR codul pe care mi l-ai dat este semi-manual :).
Vreau sa se refresh-eze AUTOMAT la 1sec / 1msec.
Alte idei ?

Mesaj Joi Apr 19, 2012 1:57 pm
EoKlaus Average Member

Mesaje: 133
Localitate: Grecia

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"> </script>
<script type="text/javascript">

$(document).ready(function(){
   setInterval(function(){
      $("#load").load('pagina.php');
   }, 10000);
});

</script>
</head>
<body>


<div id="load"><?php include("pagina.php"); ?></div>

</body>
</html>


Acum?
Copilaria nu este de la nastere pana la o anumita varsta, iar la o anumita varsta copilul a crescut si ia toate lucrurile copilaresti si le pune la o parte. Copilaria este regatul unde nu moare nimeni.

Imagine
[img=http://klaus-blog.hi2.ro/fisiere/imagine.php]

Mesaj Joi Apr 19, 2012 1:57 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 6140
Localitate: Bucuresti

esti constient cat trafic aiurea se va face pe site daca dai refres la 1 secunda? probabil ca in cateva zile se vor autosesiza cei de unde ai hostul si iti vor limita traficul...

Mesaj Joi Apr 19, 2012 2:19 pm
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

1. Mersi EoKlaus pentru script, merge PERFECTO !!
2. Birkoff, refresh-ul nu se da la toata pagina, ci la un sfert din ea.

Mesaj Joi Apr 19, 2012 2:58 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 6140
Localitate: Bucuresti

Double_Web scrie:
2. Birkoff, refresh-ul nu se da la toata pagina, ci la un sfert din ea.


ok facem un calcul simplu

sa zicem ca pagina cu scriptul la care dai refres are 10 kb
sa zicem ca ai pe ora 100 vizitatori care acceseaza site-ul (si automat si bucata cu refres-ul)

10 kb x 60 secunde = 600 kb pe minut
600 kb x 60 minute = 36.000 kb pe ora
100 vizitatori pe ora x 36.000 kb = 3.600.000 kb pe ora pentru 100 vizitatori (aproximativ 3 gb pe ora)
deci calculeaza in cat timp ti se va termina traficul (cum majoritatea hosturilor au limita de trafic lunar)

iti spun astea pentru ca am avut si eu probleme similare cu un chat jquery... dupa 3 zile mi se terminase traficul lunar...

Mesaj Joi Apr 19, 2012 3:09 pm
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

1. pai daca e cum zici tu... sunt semi fericit ca pagina mea are 5kb..
2. cum as putea sa fac altfel...? chenarul meu are de afisat cateva informatii (in real-time). Cm sa fac altfel..... ?

Mesaj Joi Apr 19, 2012 3:33 pm
quadmachine Avatar utilizator
Senior Member

Mesaje: 796
Localitate: Ploiesti

Din ce vad acolo incerci sa faci un joc nu,pentru ce sa dai refresh automat la o pagina care iti afiseaza
min HP/max HP? Si ca sa mai scurtezi din cod,am o sugestie pentru tine faci 2 tabele stats si user_stats
in stats


id - display_name - short_name
1     Maximum HP - maxhp
2    MinimumHP   -minhp


tabela user_stats

id - user_id - stat_id - value
1    1            2           1000       


Apoi o functie prin care preiei aceste valori pentru userul logat.

function getValue($statname,$userid){
   $query = sprintf("SELECT value FROM user_stats WHERE stat_id = (SELECT id FROM stats WHERE display_name = '%s' OR short_name = '%s') AND user_id = '%s'",
      mysql_real_escape_string($statname),
      mysql_real_escape_string($statname),
      mysql_real_escape_string($userid));
   $result = mysql_query($query) or die(mysql_error());
   list($value) = mysql_fetch_row($result);
   return $value;      
}



Si in pagina getValue('minhp',$_SESSION['userid']); ,getValue('maxhp',$_SESSION['userid']); [/quote]
Nu confundati femeia de serviciu cu profesoara de Limba si Literatura Romana.

Mesaj Joi Apr 19, 2012 3:35 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 6140
Localitate: Bucuresti

pai daca ne dai mai multe detalii ce vrei sa faci poate te ghidam in altfel...

1) ai putea regenera bucata respectiva la un interval mai mare (1 minut de exemplu nu 1 secunda)
2) ai putea folosi alte tehnologii (gen comet push daca iti permite serverul)

Mesaj Joi Apr 19, 2012 6:46 pm
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

@quadmachine:
1. daca aplic codul tau, imi vine informatia in real-time?
2. scuza-ma, dar nu am inteles prea bine stats tbl.

Si,da, este vorba de un joc. Pe langa hp,max_hp, mai sunt urmatoarele valori:
-bani,glodzi(niste bani mai speciali), energie, max_energie, level, max_level, experienta, regat.
Daca ma intrebati: 'Dc. ma complic cu max_hp si max_energie???' raspunsul este, pentru ca jocul are ca scop de a face bani (reali). Valorile initiale max_viata / max_energie sunt 100. Daca jucatorul da un banut, pot sa-i modific max_viata cu 1000. in fine...

AAaa... intrebare: daca acest script este hostat la o firma de hosting (ex. Romarg <nu fac reclama>) care la pachetele de hosting au trafic nelimitat... nu are nimic scriptul, nu?

Mesaj Joi Apr 19, 2012 7:58 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 6140
Localitate: Bucuresti

daca e vb de un joc, recomandarea mea este urmatoarea

1) in interfata de joc, cu javascript, faci counter-ul si ce mai trebuie (virtual, doar ca sa vada userul cam ce se intampla)
2) in spate, in codul php, la fiecare cerere a unei actiuni faci calculele din php si actualizezi in bd starea resurselor si ce mai trebuie.

ideea e asa, jucatorul va vedea cum ii cresc resursele (din javascript) dar in spate nu se va modifica nimic pana cand el nu va da clik pe ceva
- in clipa cand da clik pe ceva tu rulezi un script si faci calculele, modifici valorile in bd si afisezi noile valori la jucator.

asa e mai sigur, nu depinzi de codul js (in caz ca cineva manareste codul js ca sa isi faca avantaje la joc nu va reusii pentru ca tot de php depind calculele nu de js)

ca sa explic altfel, el vede in pagina ca ii cresc resursele cu x procente pe secunda, dar in realitate in bd resursele sunt nemodificate, pana in momentul cand da clik pe ceva si atunci din php se fac toate calculele se actualizeaza toate resursele si se face actiunea ceruta (fara sa aiba treaba cu valorile din js)
daca ai depinde de js, oricine cu ceva cunostinte de js ar modifica codul js si ar obtine avantaje in joc (de ajuns sa modifice valoarea variabilei js care creste resursele si se trezeste cu full resurse, pe cand din php nu are acces si degeaba face manarii in js)

Double_Web scrie:
AAaa... intrebare: daca acest script este hostat la o firma de hosting (ex. Romarg <nu fac reclama>) care la pachetele de hosting au trafic nelimitat... nu are nimic scriptul, nu?


depinde de host, in general ei monitorizeaza incarcarea resurselor si daca observa o crestere nejustificata a traficului sau a procesorului iti pot limita sau chiar bloca traficul sau incarcarea procesorului (si te trezesti ca se plange lumea ca are lag, sau ca merge jocu in reluare sau ca li se incarca pagina in 5 minute). la fel si numarul de interogari la bd, in general nu e bine sa depaseasca 10-15 interogari pe pagina (cu cat mai putine cu atat mai bine)

Mesaj Joi Apr 19, 2012 8:38 pm
Double_Web Avatar utilizator
Average Member

Mesaje: 170
Localitate: Bucuresti

mersi Birkoff!

Mesaj Dum Apr 14, 2013 12:55 am
Google Bot New Member

Mesaje: 1

Înapoi la Librarii Javascript

Copyright © 2001-2013 PHP Romania Gazduire web | Haine online | Gazduire web | Campanii SMS | Gazduire Claus Web | Inregistrare Domenii | Anunturi | Jocuri cu bile
Furnizat de phpBB® Forum Software © phpBB Group
Translation/Traducere: phpBB România
Powered by Simplis
cron