• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

kod JS odświeżający w pętli plik php zawiesza się

Object Storage Arubacloud
0 głosów
131 wizyt
pytanie zadane 12 lutego 2021 w JavaScript przez lalanablanalala Bywalec (2,090 p.)
edycja 12 lutego 2021 przez lalanablanalala
$(document).ready(function(){
  var content = document.getElementById('playing');
  var call = function(){
    $.ajax({
      method:'POST',
      url:'radio/player/data/playing.php', 
      success:function(data){ 
        content.innerHTML = data; 
        setTimeout(call, 30000); // 30s.       
      }
    });
  }
  call();
});

Używam kilkanaście takich kodów na stronie. Po dłuższym czasie niektóre z kodów się zawieszają. Można jakoś je ulepszyć, żeby się nie zawieszały ? LINK do strony

 

<?php 
/* ----------- Polish text and different signs ---------- */
header('Content-type: text/html; charset=windows-1250'); 
?>
<?php
/* ----------- Server configuration ---------- */
$ip = "s8.myradiostream.com";
$port = "7882";
/* ----- No need to edit below this line ----- */
/* ------------------------------------------- */
$fp = @fsockopen($ip,$port,$errno,$errstr,1);
if (!$fp) 
	{ 
	echo "Consciousness - We are not playing now"; // Diaplays when sever is offline
	} 
	else
	{ 
	fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");
	while (!feof($fp)) 
		{
		$info = fgets($fp);
		}
	$info = str_replace('</body></html>', "", $info);
	$split = explode(',', $info);
	if (empty($split[6]) )
		{
		echo "Consciousness - We are not playing now"; // Diaplays when sever is online but no song title
		}
	else
		{
		$title = str_replace('\'', '`', $split[6]);
		$title = str_replace(',', ' ', $title);
		echo "$title"; // Diaplays song
		}
	}
?>

 

komentarz 12 lutego 2021 przez Michał Kazula Pasjonat (19,540 p.)
A co robi skrypt PHP? Masz pewność że wyrabia się w 30 sek?
komentarz 12 lutego 2021 przez lalanablanalala Bywalec (2,090 p.)
w pliku jest kod Curl - dodałem go u góry. Muszę zobaczyć czy inne pliki zawierające proste teksty również się zawieszają, ale wydaje mi się że też.
1
komentarz 12 lutego 2021 przez ScriptyChris Mędrzec (190,190 p.)

Może w pewnym momencie serwer zwraca błąd, co w jQuery nie jest obsłużone - bo reagujesz tylko na success - i Ajax nie jest już ponawiany stwarzając efekt zawieszenia się?

komentarz 12 lutego 2021 przez Michał Kazula Pasjonat (19,540 p.)

@lalanablanalala, 

jeszcze mi nie pasuje ten setTimeout w ajaxcie.

Zerknij tutaj

https://stackoverflow.com/questions/5140939/repeat-jquery-ajax-call

 

 

 

komentarz 12 lutego 2021 przez lalanablanalala Bywalec (2,090 p.)

@ScriptyChris, nie znam się nad JS ale już wiem,  że jak zerwie internet i funkcja będzie się chciała powtórzyć w tym momencie to już tego nie zrobi przy ponownym połączeniu z siecią. Dłuższe czasowo funkcje jak nie trafią w brak zasięgu działają dalej... 

1
komentarz 12 lutego 2021 przez ScriptyChris Mędrzec (190,190 p.)

No bo setTimeout jest uruchamiany, gdy Ajax zwróci odpowiedź i jQuery uzna, że ona jest ok (nie zawiera błędu), a gdy nie masz połączenia z internetem, to ta odpowiedź nie ma jak wrócić - albo zapytanie w ogóle nie dotrze do serwera, albo odpowiedź z serwera nie zostanie odebrana przez klienta.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 456 wizyt
pytanie zadane 10 grudnia 2015 w PHP przez artimal Gaduła (4,800 p.)
0 głosów
1 odpowiedź 374 wizyt
pytanie zadane 10 października 2020 w PHP przez KumberTwo Dyskutant (8,270 p.)
0 głosów
3 odpowiedzi 765 wizyt
pytanie zadane 23 stycznia 2020 w PHP przez MAXIM7 Obywatel (1,990 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...