Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak zlikwidować oznaki przeładowania strony
Forum PHP.pl > Forum > Przedszkole
redelek
Witam,

Pracuję na prostym skrypcie i nie mogę sobie poradzić.

  1. <?php
  2.  
  3. $dt = date("H:i:s");
  4. echo $dt;
  5. header('Refresh: 1; url=odliczanie_czasu.php');
  6.  
  7. ?>


Wszystko ładnie działa, ale widać odświeżanie w przeglądarce czyli takie mrugnięcia i pasek przeładowujący stronę.
Niestety jak zwykle mam problem bo nie znam JS, ani AJAX sad.gif

Czy może ktoś mi pomóc czy jest to do zrobienia czy raczej nie?

Pozdrawiam
Redelek
Shili
A co potrzebujesz zrobić? Chodzi Ci tylko o pokazanie aktualnego czasu na stronie, który będzie się zmieniał co sekundę?

Proponuję do tego użyć js, np:
http://www.skrypty-javascript.net/javascript/1.php
piotrooo89
a nie łatwiej było by napisać funkcje zegrarka w javascript? ja mam coś takiego:

Kod
function zegarek()
{
var zegar = new Date();

var czas;

var sekunda, minuta, godzina;
sekunda = zegar.getSeconds();
minuta = zegar.getMinutes();
godzina = zegar.getHours();

if (sekunda < 10)
{
sekunda = "0" + sekunda;
}
if (minuta < 10)
{
minuta = "0" + minuta;
}
if (godzina < 10)
{
godzina = "0" + godzina;
}

czas = godzina +":"+ minuta +":"+ sekunda;

window.document.forms.info.zegar.value=czas;
setTimeout("zegarek();",1000);
}

zegarek();
redelek
Cytat(Shili @ 25.06.2008, 11:29:59 ) *
A co potrzebujesz zrobić? Chodzi Ci tylko o pokazanie aktualnego czasu na stronie, który będzie się zmieniał co sekundę?

Proponuję do tego użyć js, np:
http://www.skrypty-javascript.net/javascript/1.php



No tak ale mi chodzi o taki uniwersalny moduł odświeżania bo nie do zegarka, ale do innych rzeczy będzie mi potrzebny
Shili
Do jakich jeśli można spytać? Bez tego ciężko jest cokolwiek poradzić. I koniecznie musi być to co sekundę?

@edit
Ajax ze wszech miar wydaje się lepszym rozwiązaniem w tej sytuacji. Phpem możesz zajeździć serwer aż za bardzo, chyba że koniecznie właśnie całą stronę musisz mieć przeładowywaną a nie jej część.
Pilsener
Nie widzę sensu wysyłać całej strony z serwera co sekundę. To user ma decydować o tym, kiedy i jak stronę odświeżyć. Natomiast dla dynamicznej zmiany już wysłanej strony są zupełnie inne technologie (AJAX, JAVA, FLASH).
redelek
Cytat(Shili @ 25.06.2008, 11:41:33 ) *
Do jakich jeśli można spytać? Bez tego ciężko jest cokolwiek poradzić. I koniecznie musi być to co sekundę?

@edit
Ajax ze wszech miar wydaje się lepszym rozwiązaniem w tej sytuacji. Phpem możesz zajeździć serwer aż za bardzo, chyba że koniecznie właśnie całą stronę musisz mieć przeładowywaną a nie jej część.


A jeszcze mam takie skrypt do odliczania czasu i dni i jego też bym chciał tak zrobić:( żeby odliczało się na stronie sad.gif a nie było statyczne
f1xer
No ale skrypt do odliczania ile zostało do danej daty też możesz napisać w JS
http://ajaxin.pl/2007/01/25/odliczanie-czasu-w-javascript/
pierwszy wynik w goglach

a to kod z www.javascriptkit.com odlicza ile zostało to roku 3000

Kod
<form name="count">
  <input type="text" size="69" name="count2">
  </form>
  
  
  <script>
  
  /*
  Count down until to Year 3000 script-
  By JavaScript Kit (www.javascriptkit.com)
  Over 200+ free scripts here!
  */
  
  
  //change the text below to reflect your own,
  var before="Year 3000!"
  var current="Today is Year 3000!"
  var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
  
  function countdown(yr,m,d){
  theyear=yr;themonth=m;theday=d
  var today=new Date()
  var todayy=today.getYear()
  if (todayy < 1000)
  todayy+=1900
  var todaym=today.getMonth()
  var todayd=today.getDate()
  var todayh=today.getHours()
  var todaymin=today.getMinutes()
  var todaysec=today.getSeconds()
  var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
  futurestring=montharray[m-1]+" "+d+", "+yr
  dd=Date.parse(futurestring)-Date.parse(todaystring)
  dday=Math.floor(dd/(60*60*1000*24)*1)
  dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
  dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
  dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
  if(dday==0&&dhour==0&&dmin==0&&dsec==1){
  document.forms.count.count2.value=current
  return
  }
  else
  document.forms.count.count2.value=dday+ " days, "+dhour+" hours, "+dmin+" minutes, and "+dsec+" seconds left until "+before
  setTimeout("countdown(theyear,themonth,theday)",1000)
  }
  //enter the count down date using the format year/month/day
  countdown(3000,1,1)
  </script>
  <p align="center">This free script provided by
  
  <a href="http://javascriptkit.com">JavaScript
  Kit</a></p>

tak pozatym jak wyobrażasz sobie taką stronę która non-stop się odświeża przecież zrobienie czego kolwiek na niej byłoby katorgą może na localu byłoby ok ale później? strona się wczytuje powiedzmy 5s i co już chcesz kliknąć menu a tu odśwież biggrin.gif
redelek
Cytat(f1xer @ 25.06.2008, 13:26:29 ) *
tak pozatym jak wyobrażasz sobie taką stronę która non-stop się odświeża przecież zrobienie czego kolwiek na niej byłoby katorgą może na localu byłoby ok ale później? strona się wczytuje powiedzmy 5s i co już chcesz kliknąć menu a tu odśwież biggrin.gif



Wiem wiem, ale co mam jakiś pomysł to kończy się on na Ajax lub JS.
Chyba pora kupić książki i poczytać to i owo:)

Dzięki Panowie za pomoc smile.gif

Pozdrawiam
Redelek
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.