Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Problem z odświeżaniem strony przy zastosowaniu niceurl
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


W swojej aplikacji zastosowałem wzorzec MVC i niceurl. Edytowałem całkowicie tego posta, bo być może niezbyt jasno to wszystko opisałem.

Miałem problem z IE i myślałem, że go rozwiązałem. Ale powrócił :/ Do rzeczy. Mam aplikację, która wyświetla jakieś dane wierszami, np:

Cytat
Tytuł | Imię | Nazwisko| data publikacji | ...| i jeszcze inne rzeczy
Tytuł | Imię | Nazwisko| data publikacji | ...| i jeszcze inne rzeczy
Tytuł | Imię | Nazwisko| data publikacji | ...| i jeszcze inne rzeczy
Tytuł | Imię | Nazwisko| data publikacji | ...| i jeszcze inne rzeczy
Tytuł | Imię | Nazwisko| data publikacji | ...| i jeszcze inne rzeczy
(...)

Tytuł jest linkiem do edycji. Na stronie jest tego dużo. Zawartość tej strony musi się odświeżać co 30sekund. To nie problem ale.. po automatycznym odświeżeniu przeglądarka powinna ustawić się w miejscu gdzie użytkownik znajdował się przed odświeżeniem. Opera robi to automatycznie ale nie FF i nie IE.
Rozwiązanie wydaje się banalnie proste - zastosować kotwice. Czyli do każdego tytułu (linka dodajemy wygenerowaną kotwicę) - np:
keeper1
keeper2
keeper3
itd..

A w znaczniku meta wywołujemy adres strony z tą kotwicą. Działa.

Zastosowałem niceUrle i problem z IE jest następujący. IE olewa kotwice - jeśli w adresie pojawia się znak # to strona odświeża się tylko 1 raz a potem ignoruję <meta>.

Adres wygląda mniej więcej tak:
Kod
http://localhost/Application/NazwaAplikacji/main/pl/NazwaAkcji/parametr1/wartosc1/parametr2/wartosc2/#keeper30

a znacznik <meta> ustawiam tak:
  1. <?php
  2. (...)
  3. $sParameter = explode('/', $_SERVER['PATH_INFO']);
  4.  
  5. if (isset($sParameter[5]))
  6. {
  7. echo '<meta http-equiv="Refresh" content="30; URL=http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '#keeper' . $sParameter[5] . '" />';
  8. }
  9. else
  10. {
  11. echo '<meta http-equiv="Refresh" content="45; URL=http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '" />';
  12. }
  13.  
  14. (...)
  15. ?>



Dziaisja sprawdzałem i pod IE7 jest to samo.

Macie jakieś pomysły?




---------
EDIT:

Nikt z Was nie pisał aplikacji, która powinna odświeżać dane co jakiś czas i ustawiać się na pozycji, w której użytkownik przeglądał stronę przed odświeżeniem?




--------
EDIT2:

Prosty przykład, że jak IE napotka znak # w adresie to przestaje działać prawidłowo.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. <meta name="Robots" content="all" />
  7. <meta name="Pragma" content="no-cache" />
  8. <meta name="Cache-Control" content="no-store, no-cache, must-revalidate" />
  9. <?php echo '<meta http-equiv="Refresh" content="10; URL=http://localhost/X/index.php?#keep30" />'; ?>
  10.  
  11. <title>Testy...</title>
  12. </head>
  13. <body>
  14. <?php
  15. for ($i=0; $i<1000; $i++)
  16. {
  17. echo 'Test ' . $i . '<br />';
  18. }
  19. ?>
  20. </body>
  21. </html>


Ten post edytował Jarod 25.03.2008, 01:04:39


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 19.08.2025 - 14:27