ďťż
Podstrony
|
telcocafeWitam.Stworzyłem stronę, w której użytkownik może dodać swój komentarz, a ten jest zapisywany do pliku XML. Mój problem polega na tym, że użytkownik nie widzi od razu efektów swojej pracy (czasem jest to dłuższa twórczość i może to stanowić dla niego problem). Sam plik XML jest obsłużony prawidłowo - nowy wpis jest w odpowiedni sposób doń dodawany, jednak strona (zbudowana praktycznie w całości w JavaScripcie z wykorzystaniem DOM) nie wyświetla zaktualizowanego pliku. Podobnie rzecz się ma gdy zaraz po dodaniu komentarza otworzę w przeglądarce ów plik bezpośrednio. Wpisu nie ma. Dopiero gdy odświeżę otwarty bezpośrednio przez przeglądarkę plik XML, wpis pojawia się, a następnie (po wykonaniu odpowiednio zaprogramowanych czynności) widać go również na samej stronie. Do wyświetlania zawartości używam Ajaxa; metoda GET, odwołuję się bezpośrednio do pliku, a odpowiedź odbieram przez responseXML. Pytanie moje: jak sprawić, by w cudowny sposób, strona (po dodaniu przezeń kolejnego wpisu) automatycznie załadowała zaktualizowany plik XML? Przeszukałem trochę sieć, ale nie znalazłem jednoznacznej odpowiedzi. Kilka razy przewinęło się coś o: Pragma: no-cache, czy też Cache-Control: no-cache. Źle szukałem, czy może to właśnie trzeba zastosować? A jeśli tak, w jaki sposób? Z góry dziękuję. keszowanie przeglądarek jest trudne do obejścia (plików JS, CSS, statycznych). Jedyne rozwiązanie to wrzucenie JSem/Ajaxem go do treści strony... Może pomoże ci poniższy kod. <?php header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?> php.net: header() Może pomoże ci poniższy kod. <?php header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?> php.net: header() Dzięki, ale bardziej mi zależy na umieszczeniu wszystkiego w pliku Javascript i odwoływanie się przez Ajaxa. Próbowałem ustawić te parametry przez setRequestHeader, ale to nic nie dało. Nadal nowe wpisy pojawiają się dopiero po odświeżeniu strony. A może to w pliku XML można/trzeba coś zmienić? Dodać jakiś zapis, czy coś tego typu? Poradziłem sobie w najprostszy możliwy sposób - dodałem do adresu wywoływanego pliku końcówkę ?q=xyz, gdzie xyz jest obecną datą generowaną przez skrypt za każdym wywołaniem funkcji, więc i adres jest zawsze nieco inny. W ten sposób FF jest oszukany i odczytuje ten sam plik tak, jakby czytał coś innego. |
|||
Sitedesign by AltusUmbrae. |