[ dragon.mi @ 10.11.2008. 22:36 ] @
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. |