Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Wyświetlanie najnowszego zdjęcia z katalogu
Forum PHP.pl > Forum > Przedszkole
panbobek44
Cześć,

mam skonfigurowaną kamerkę do wysyłania zdjęcia po wykryciu ruchu na FTP. Chodzi mi o to żeby na stronie internetowej aktualizowało się zdjęcie bez konieczności ręcznego odświeżania strony w przeglądarce.

Chciałbym, aby skrypt sprawdzał czy pojawiło się nowsze zdjęcie i dynamicznie je podmieniał.

Jak się do tego zabrać?
frankiejojo
ustaw crona.
vokiel
1. WebSockets - na serwerze skrypt na bieżąco sprawdza czy się pojawiło coś nowego w katalogu - jeśli tak to śle info do przeglądarki.
2. SSE - https://en.wikipedia.org/wiki/Server-sent_events
3. Ewentualnie, jako opcja zapasowa - jakiś long-pooling, gdzie przeglądarka w pętli odpytuje serwer czy jest coś nowego
panbobek44
Próbowałem zrobić to w ten sposób:
  1. <script type="text/javascript">
  2. let temp;
  3. function ZmianaObrazka() {
  4. if(temp=="1.jpg") {
  5. temp="2.jpg";
  6. }
  7. else {
  8. temp="1.jpg";
  9. }
  10. document.getElementById("imgid").src=temp;
  11. }
  12. setInterval("ZmianaObrazka()", 1000);
  13.  
  14. <img src="1.jpg" id="imgid" style="width:20%" />

Problem w tym, że obrazek jest pobierany z pamięci podręcznej przeglądarki, a nie z serwera. Da się to obejść?
nospor
poprostu dodawaj kolejny numer do zdjecia cos ala

temp="1.jpg?I_tu_kolejny_numer_po_znaku_zapytania";
panbobek44
Dzięki, stworzyłem takiego potworka i na razie mi to wystarczy.

  1. <script type="text/javascript">
  2. let i=1;
  3. let file;
  4. function ZmianaObrazka() {
  5. if(i==1) {
  6. file="2.jpg";
  7. i=2;
  8. }
  9. else {
  10. file="1.jpg";
  11. i=1;
  12. }
  13. file=file+"?"+Math.floor(Math.random()*9999999);
  14. document.getElementById("imgid").src=file;
  15. }
  16. setInterval("ZmianaObrazka()", 1000);
  17.  
  18. <img src="1.jpg" id="imgid" style="width:20%" />
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.