Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obciążenie serwera.
patryk20120
post
Post #1





Grupa: Zarejestrowani
Postów: 256
Pomógł: 1
Dołączył: 20.04.2008

Ostrzeżenie: (0%)
-----


Witam Was,

napisałem w miarę prosty skrypt na swoją strone, lecz po wejściu sporej liczby osób np. 100 strona zaczyna bardzo wolno się ładować. Możecie mi powiedzieć, czy poniższy kod może aż tak obciążać serwer?

Mam taki kodzik na stronie:
  1. <script type="text/javascript" language="javascript">
  2. $(document).ready(function() {
  3.  
  4. function live(){
  5. $.ajax({
  6. url: './a_php.php',
  7. data: {data: 'info'},
  8. type: 'post',
  9. success: function(output) {
  10. $("#div").html(output);
  11.  
  12. }
  13. });
  14.  
  15. }
  16. live();
  17. setInterval(function(){live();}, 19800);
  18.  
  19. });
  20. </script>


a to kod a_php.php
  1. <?php
  2. if( $_POST['data'] == 'info' && !empty($_POST['data'])){
  3.  
  4. $twitch_live = false;
  5. $twitch_live_v = 0;
  6. $twitch_live_t = '';
  7. $twitch_live_g = '';
  8. //---------------------
  9. $gamecreds_live = false;
  10. $gamecreds_live_v = 0;
  11. $gamecreds_live_t = '';
  12. $gamecreds_live_g = '';
  13. //------------
  14. $wyswietl = '';
  15. $razem = 0;
  16. //pobieranie danych gamecreds
  17. $json_array = json_decode(file_get_contents('https://api.dailymotion.com/videos/?ids=kod&fields=title,genre,onair,tag,audience&limit=25'), true);
  18. if($json_array['list'][0]['onair'] == true){
  19. $gamecreds_live = true;
  20. $gamecreds_live_v = $json_array['list'][0]['audience'];
  21. $gamecreds_live_t = $json_array['list'][0]['title'];
  22. $gamecreds_live_g = $json_array['list'][0]['tag'][1];
  23. }
  24. //pobieranie danych twitch
  25. $json_array2 = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/nick'), true);
  26.  
  27. if ($json_array2['stream'] != NULL) {
  28. $twitch_live = true;
  29. $twitch_live_v = $json_array2['stream']['viewers'];
  30. $twitch_live_t = $json_array2['stream']['channel']['status'];
  31. $twitch_live_g = $json_array2['stream']['channel']['game'];
  32.  
  33. }
  34.  
  35. if($twitch_live == true || $gamecreds_live == true){
  36. $razem = $twitch_live_v + $gamecreds_live_v;
  37. $wyswietl = '
  38. <div id="live-header-on">
  39. '.$razem.'</div>';
  40. }
  41.  
  42.  
  43. if($twitch_live == false && $gamecreds_live == false){
  44. $wyswietl = '
  45. <div id="live-header-off"></div>';
  46. }
  47.  
  48. echo $wyswietl;
  49.  
  50. }
  51. ?>


Czy przyczyną obciążenia jest źle zrobiony kod, czy słaby serwer lub z jakimiś ograniczeniami?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jackraymund
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

Ostrzeżenie: (0%)
-----


to zrób alternatywe w indexie (IMG:style_emoticons/default/biggrin.gif) ajax zapytanie do skryptu, skrypt robi zapytanie w bazie, w której trzymasz tylko timestamp i czy jest aktualnie wykonywany skrypt

czyli index
zapytanie do bazy czy jest wykonywany skrypt i czy data w bazie jest o 20 sekund starsza od aktualnej
wtedy wyrysuj ajaxa na strone,

w ajaxie
to samo zapytanie, czy jest wolny i czy data w bazie jest o 20 sekund starsza od aktualnej
jezeli nie jest wolny
ustawiasz status na pracujacy
uruchamiasz twoj skrypt do aktualizacji
potem tylko ustawiasz aktualna date i status wolny
+ kilka małych usprawnień powinieneś też dodać

Ten post edytował jackraymund 4.09.2013, 16:18:51
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 21:03