Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ajax - pusty xml (lub pusty plik zamiast xml) - pytanie
Forum PHP.pl > Forum > XML, AJAX
ChrisB
witam, wrzuciłem sobie na serwis shoutbox-a - made in garaż, ogólnie wszystko pięknie i ładnie ale z pobieraniem wiadomości co 10 sekund - ładnie obciąża serwer i generuje spory ruch (spory biorąc pod uwagę resztę strony)

na razie zrobiłem coś takiego
w sesji trzymam czas ostatniego odświeżenia i jeśli nie ma nowych danych serwuje "pustego xml-a"
  1. echo '<?xml version="1.0" encoding="UTF-8"?><records></records>';


i wszystko działa ok - tylko że nadal sporo pobiera danych nawet bez faktycznych wpisów (z nagłówkami, etc)

pytanie brzmi co zrobić by ajax ignorował i nie wyrzucał błędu jeśli plik z xml-em jest pusty (po prostu przy wykryciu braku nowych rekordów - dodałem die(); - żadnych nagłówków, nic)
ale firefox przy każdym odświeżeniu wyrzuca błąd (w konsoli błędów):

"nie znaleziono elementu" wraz z linkiem do pliku - który serwuje pusty.
da się to jakoś obejść?

pozdrawiam.
RafaelX
moze lepiej zamiast pustego dawaj jakąs cyfre np: 1
a w JS zrób ze jeśli odpowiedź jest równa 1 to koniec skryptu i tyle
ChrisB
hmm, tyle że równie dobrze mogę wysłać pustego xml-a, różnica jest 30-40 bajtów.

a inne pytanie - jak sprawdzić ile zajmują nagłówki? i jak je zminimalizować?
erix
Cytat
i wszystko działa ok - tylko że nadal sporo pobiera danych nawet bez faktycznych wpisów (z nagłówkami, etc)

header" title="Zobacz w manualu PHP" target="_manual i znajdź not modified. Nie wyrzucaj całego XML-a, to jest bez sensu.

Cytat
a inne pytanie - jak sprawdzić ile zajmują nagłówki? i jak je zminimalizować?

Nagłówki przecież sam sprawdzasz. request.status, poszukaj sobie kodu HTTP na niezmienioną zawartość.
ChrisB
Date: Thu, 19 Mar 2009 19:16:53 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.8
Set-Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; domain=.gragieldowa.pl
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding,User-Agent
Content-Length: 3390
Keep-Alive: timeout=1, max=100
Connection: Keep-Alive
Content-Type: text/html


hmm takie nagłówki wysyła przy pustej stronie x.x

przyznaje bez bicia - kompletnie nie mam pojęcia jak faktyczna komunikacja między serwerem a przeglądarką działa...

skąd się bierze content-lenght: 3390 skoro strona jest kompletnie pusta...
i expires 30 lat wstecz ustawione?

jakiekolwiek pomysły, linki, albo inne info mile widziane
erix
Cytat
przyznaje bez bicia - kompletnie nie mam pojęcia jak faktyczna komunikacja między serwerem a przeglądarką działa...

Może lektura wikipedii? winksmiley.jpg

Cytat
hmm takie nagłówki wysyła przy pustej stronie x.x

Masz włączone sesje, wysyła ciastko + parę dodatkowych nagłówków, które wymuszają przeładowanie strony. Zerknij do session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual.
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.