Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][JavaScript] Problem ze wstawieniem obrazka
sawanb03
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.12.2007

Ostrzeżenie: (0%)
-----


Witam,
mam taki problemik. Troszku nie wiem jak to opisać.
Podam stronkę, która jest w trakcie realizacji.
...
W zakładce Zilustrowanie możemy wybrać sobie wykres dla konkretnych modelów jaki ma być narysowany. Ten wykres rysuje się w czasie rzeczywistym programem gnuplot, który zwraca go do plku wykres.jpg.
Wsadzam ten wykres do mojej strony za pomocą komendy
<img src="tmp/wykres.jpeg" alt="Tekst alternatywny" />
W przeglądarkach Internet Explorer oraz Opera jest zapamiętany poprzedni wykres z tego pliku wykres.jpg, dopiero po odświeżeniu strony pokazuje się ten prawidłowy. Zaznaczam, że w pliku wykres.jpg już jest poprawnie narysowany wykres, a przeglądarka pokazuje co innego. Domyślam się, że wczytuje stronę z historii.
Trochę to zagmatwałem, ale mam nadzieję zrozumieliście mi o co chodzi.
W przeglądarce firefox wszystko chodzi idealnie.
Chciałem użyć funkcji location.reload() w JS, ale ona cały czas mi odświeża stronę.
Może mi ktoś pomóc?
Pozdrawiam

Ten post edytował sawanb03 21.09.2008, 13:38:23
Go to the top of the page
+Quote Post
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


są dwa proste rozwiązania:

1. za każdym razem rób rename tego pliku, tak aby nazwa była unikalna (najlepiej losowa) i linkuj ten plik po zmianie nazwy. wtedy przeglądarka nie będzie pobierać go z cache

2. jeżeli serwer pozwala ci na ścieżki typu url możesz to tej ścieżki dodawać fikcyjny losowy parametr, wtedy też przeglądarka nie pociągnie obrazka z chache

przykład 1:
  1. <?php
  2. $file_name = 'tmp/img_'.rand(0, 10000).'.jpg';
  3. rename('tmp/wykres.jpg', $file_name);
  4. echo '<img src="'.$file_name.'" alt="Tekst alternatywny" />';
  5. ?>

przykład 2:
  1. <?php
  2. $file_name = 'tmp/wykres.jpg?x='.rand(0, 10000);
  3. echo '<img src="'.$file_name.'" alt="Tekst alternatywny" />';
  4. ?>

powodzenia.
Go to the top of the page
+Quote Post
sawanb03
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.12.2007

Ostrzeżenie: (0%)
-----


Jest to jakieś rozwiązanie, ale pojawia się następny problem, mianowicie te pliki będą tworzyły się w nieskończoność za każdym razem jak będziemy chcieli narysować jakiś wykres. Jak ten plik teraz skasować zaraz po tym jak się ładnie stronka wyświetli z wykresem.
Funkcja
unlink($file_name);
zaraz po
echo '<img src="'.$file_name.'" alt="Tekst" />';
Nie daje poprawnego rozwiązania.


EDIT:
Mam pomysł na rozwiązanie tego problemu, ale nie wiem jak porównać dwie zmienne (banalne pytanie) (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Wyszukam sobie w katalogu wszystkie pliki i wrzucę je do zmiennej jak teraz porównać czy ta zmienna jest z rozszerzeniem jpeg.
Próbuje tak:
  1. <?php
  2. if ($entry=="*.jpeg")
  3. ?>


ale coś ta gwiazdka nie działa (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

edit2:
Poradziłem sobie
  1. <?php
  2.  
  3.   $d = dir("/tmp");
  4.   echo "Handl: ".$d->handle."<br>";
  5.   echo "Pat: ".$d->path."<br>";
  6.   while($entry=$d->read()) {
  7.      echo $entry."<br>";
  8.      if (eregi('img_[0-9]+.jpeg', $entry))
  9.      {
  10.      unlink('tmp/'.$entry);
  11.      }
  12.   }
  13.   $d->close();
  14.   echo 'Wybie';
  15. ?>


Ten post edytował sawanb03 21.09.2008, 13:40:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:55