Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Onemogućavanje korišćenja Back dugmeta u Mozilla Firefox-u kod JSF aplikacija

[es] :: Java :: Onemogućavanje korišćenja Back dugmeta u Mozilla Firefox-u kod JSF aplikacija

[ Pregleda: 1772 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dragon.mi

Član broj: 146873
Poruke: 25
*.smin-1.sezampro.yu.



Profil

icon Onemogućavanje korišćenja Back dugmeta u Mozilla Firefox-u kod JSF aplikacija10.11.2008. u 22:36 - pre 188 meseci
Imam intranet web aplikaciju koja u prezentacionom delu koristi JSF i to Richfaces biblioteku podataka. Video sam ovde dosta negativnih komentara o ovom okruženju ali šta da se radi.

U svom PhaseListeneru sam podesio da mogu da se koriste samo Internet Explorer 7 i Mozilla Firefox 3 pošto se kod tih browsera aplikacija najbolje pokazala s tim što se pod Mozillom izvršava uočljivo brže. Može da se radi u više tabova istovremeno bez ikakvih problema zahvaljujući pre svega <a4j:keepAlive/> tagu i to izgleda jako dobro.

Medjutim, postoji problem u korišćenju Back dugmeta i pokušao sam da primenim neku od brojnih javascript funkcija za vraćanje na stranu pre klika na Back dugme. U najvećem broju slučajeva to je i uspevalo ali u nekim slučajevima nije(verovatno zato što u 95% slučajeva koristim Ajax kod odgovora na akcije korisnika) i zbog toga sam od tog rešenja odustao.

Na kraju sam pronašao PhaseListener koji koji u svaku stranicu u header deo dodaje i deo kojim se kaze da nema keširanja stranica:

public class CacheControlPhaseListener implements PhaseListener {

/**
*
*/
private static final long serialVersionUID = 1L;
public PhaseId getPhaseId(){

return PhaseId.RENDER_RESPONSE;
}

public void afterPhase(PhaseEvent event) {}
public void beforePhase(PhaseEvent event){

FacesContext facesContext = event.getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Cache-Control", "must-revalidate");
response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT"); // some date in the past

}
}

I nakon toga u Internet Exploreru 7 ukoliko se klikne na dugme Back javlja se poruka "Webpage has expired". Mada ovo nije baš korisnički orjentisano ipak ukoliko ne nadjem neko drugo rešenje ću ovo i primeniti. Medjutim, u Firefoxu 3 se ne ponaša ovako već kao i pre tj. kao da ovo ignoriše. Interesuje me kako mogu podesiti da se i Firefox 3 ponaša kao Internet Explorer 7 tj. koju još direktivu da dodam u zaglavlje dokumenta? Voleo bih da koristim Firefox 3 pošto se dosta toga izvršava na klijentskoj strani zbog Ajaxa, a to se izvršava primetno brže kod Mozille 3.

Vidim da je ovo problem i kod nekih drugih server side okruženja ali je posebno izražen kod JSF (verovatno zbog post metoda slanja podataka na server) tako da ovo pitanje nije strogo vezano za JSF.

 
Odgovor na temu

dragon.mi

Član broj: 146873
Poruke: 25
212.200.239.*



Profil

icon Re: Onemogućavanje korišćenja Back dugmeta u Mozilla Firefox-u kod JSF aplikacija21.11.2008. u 07:35 - pre 188 meseci
Evo linka strane gde mogu da se nadju uputstva kako se moze upravljati kesom u Mozilla Firefox-3. Za potpuno eliminisanje kesa moze se primeniti savet broj 3 ali pitanje koliko je to dobro sa stanovista perfomansi:

http://www.davidtan.org/tips-reduce-firefox-memory-cache-usage/
 
Odgovor na temu

dragon.mi

Član broj: 146873
Poruke: 25
212.200.239.*



Profil

icon Re: Onemogućavanje korišćenja Back dugmeta u Mozilla Firefox-u kod JSF aplikacija06.02.2009. u 12:06 - pre 185 meseci
Konacno je u verziji 3.0.6 Mozilla-e Firefox otklonjen bug koji se odnosi na ignorisanje direktiva o nekesiranju stranica na klijentskoj strani. Moze se videti na strani: http://www.mozilla.org/securit...es/firefox30.html#firefox3.0.6 (MFSA 2009-06).
U svom Phase Listeneru sam samo red: response.addHeader("Cache-Control", "no-cache") zamenio sa: response.addHeader("Cache-Control", "no-store").
Sada sve funkcionise kao da sam izvrsio podesavanja na klijentskoj strani u okviru samog browsera na stranici about:config.

Inace, koga zanima moze da pogleda i RestFaces framework ( https://restfaces.dev.java.net/ ) koji moze da kreira GET zahteve umesto POST zahteva koje inace koristi JSF! Isprobao sam i odlicno se ponasa u odnosu na koriscenje Back dugmeta, a moze i da se vrsi bookmarking! Medjutim, u nekim situacijama postoji problem kada se ukljuci i Ajax i kada se koristi Back dugme ali to je i inace problem i kada se ne koristi RestFaces.
 
Odgovor na temu

[es] :: Java :: Onemogućavanje korišćenja Back dugmeta u Mozilla Firefox-u kod JSF aplikacija

[ Pregleda: 1772 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.