Refresh

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Refresh

Mesajde Double_Web » Joi Apr 19, 2012 12:29 pm

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:

Cod: Selectaţi tot

<?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 !



Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Joi Apr 19, 2012 12:36 pm

poti baga scriptul in iframe si sa ii dai refres doar la acel iframe
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Mesajde Double_Web » Joi Apr 19, 2012 1:28 pm

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 .

EoKlaus
Average Member
Mesaje: 133
Membru din: Mie Apr 20, 2011 3:11 pm
Localitate: Grecia

Mesajde EoKlaus » Joi Apr 19, 2012 2:04 pm

Te ajuta acest exemplu:

Cod: Selectaţi tot


<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]

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Mesajde Double_Web » Joi Apr 19, 2012 2:50 pm

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

EoKlaus
Average Member
Mesaje: 133
Membru din: Mie Apr 20, 2011 3:11 pm
Localitate: Grecia

Mesajde EoKlaus » Joi Apr 19, 2012 2:57 pm

Cod: Selectaţi tot


<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]

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Joi Apr 19, 2012 2:57 pm

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...
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Mesajde Double_Web » Joi Apr 19, 2012 3:19 pm

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

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Joi Apr 19, 2012 3:58 pm

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...
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Mesajde Double_Web » Joi Apr 19, 2012 4:09 pm

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..... ?

quadmachine
Senior Member
Mesaje: 807
Membru din: Sâm Iul 10, 2010 4:58 pm
Localitate: Ploiesti
Contact:

Mesajde quadmachine » Joi Apr 19, 2012 4:33 pm

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


Cod: Selectaţi tot

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


tabela user_stats

Cod: Selectaţi tot

id - user_id - stat_id - value
1    1            2           1000       


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

Cod: Selectaţi tot

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]

Cod: Selectaţi tot

Nu confundati femeia de serviciu cu profesoara de Limba si Literatura Romana.

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Joi Apr 19, 2012 4:35 pm

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)
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Mesajde Double_Web » Joi Apr 19, 2012 7:46 pm

@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?

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Joi Apr 19, 2012 8:58 pm

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)
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Double_Web
Average Member
Mesaje: 183
Membru din: Joi Apr 12, 2012 2:33 pm
Localitate: Bucuresti
Contact:

Mesajde Double_Web » Joi Apr 19, 2012 9:38 pm

mersi Birkoff!


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 5 vizitatori