我有mainmenu.jsp,login.jsp和logout.jsp。該流程類似於以下如何根據onload函數中的結果顯示html內容
的login.jsp ---> mainmenu.jsp ---> logout.jsp
第一用戶能夠看到的login.jsp併成功登錄後,用戶可以請參閱mainmenu.jsp,其中單擊註銷按鈕用戶被轉發到logout.jsp文件。在logout.jsp文件中,如果使用點擊瀏覽器後退按鈕,他/她可以看到前一頁(mainmenu.jsp),但我想顯示login.jsp頁面。爲了避免這種情況,我在main menu.jsp的加載中使用ajax調用來檢查變量。我可以將頁面重定向到login.jsp。這是一個像閃爍問題的問題。在服務器返回結果之前,我的mainmenu.jsp文件被加載。服務器返回結果後,頁面被重定向到登錄頁面。我想限制當前頁面加載,直到任何響應來自服務器。我怎樣才能做到這一點? 我使用下面的代碼在主菜單中
$(window).load(function() {
$.ajaxSetup({async:false}); //execute synchronously
var isSessionExists = "";
$.post("getSession", {}, function(data, textStatus, xhrObject) {
isSessionExists = data.split("=")[1];
});
$.ajaxSetup({async:true});
if((isSessionExists.indexOf('NO')>=0)){
// alert("...inside condition...")
top.location="index.jsp";
}else{
alert("....BREAK..."+isSessionExists)
}
});
可能的setInterval的組合的onload並保持閃爍的部分與CSS隱藏,直到你準備好了嗎? – Jeff
你也使用任何控制器(MVC)嗎?如果是,則最好檢查控制器是否授權用戶查看頁面(換句話說,用戶已登錄或註銷)。從控制器您可以返回正確的頁面。如果你不使用MVC,那麼我想在服務器端必須有可以做這種操作的東西。使用JavaScript來做這樣的事情是可能的,但不可取。 –