• 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ę

Aruba Cloud - Virtual Private Server VPS
0 głosów
181 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 594 wizyt
pytanie zadane 10 grudnia 2015 w PHP przez artimal Gaduła (4,800 p.)
0 głosów
1 odpowiedź 626 wizyt
pytanie zadane 10 października 2020 w PHP przez 12332112332121 Dyskutant (8,270 p.)
0 głosów
3 odpowiedzi 970 wizyt
pytanie zadane 23 stycznia 2020 w PHP przez MAXIM7 Obywatel (1,990 p.)

93,334 zapytań

142,328 odpowiedzi

322,406 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...