1
我正在研究一個函數來重新載入頁面,但我們的菜單實際上是一個手風琴,不應該重新加載。即,使其刷新頁面以繼續處於相同狀態。不要重新充電菜單刷新Jquery-Ajax的頁面
我在下面顯示的功能我使用JQuery來處理重新加載頁面,因此在模板的中心相同的負載。
下面這個函數是頁面的刷新:
function recarregarPagina() {
//Verifica quais teclas estão sendo pressionadas
$(document).on("keydown", function(e) {
//Houve um evento para recarregar a página?
if ((e.which || e.keyCode) === 116 || (e.keyCode === 82 && e.ctrlKey)) {
e.preventDefault();
//Inicializa a hash
var hash = window.location.hash;
console.log("recarregarPagina 1=" + hash);
//A última url está definida?
if (hash !== '' && hash !== undefined) {
console.log("recarregarPagina 2=" + hash);
//Recarrega a página central do template de acordo com a última url visitada
loadView(hash, false, true, true);
}
}
});
}
下面的功能是在模板的中心處的負載圖(頁):
function loadView(url, post, submit, repeat) {
//Remove o hash da url para poder carregá-la sem a ocorrência de loop
url = url.replace("#", "");
//Inicializa variáveis
var div = $("#divConteudo");
var overlay = $("#overlay");
var type = "POST";
var data = $("form").serialize();
//Verifica se o tipo de requisição ajax será post ou GET
if (!post) {
type = "GET";
}
//A última hash é diferente da url atual?
if (lastHash !== url || repeat) {
//Exibe o loader
overlay.show();
div.hide();
/**
* Inicia a requisição AJAX
*/
$.ajax({
//Antes de enviar a requisição
beforeSend: function() {
//Atualiza o último hash visitado
lastHash = url;
//Insere a hash na url do navegador
window.location.hash = url;
},
type: type,
url: url,
//Para enviar os dados junto com a página, verifica se será necessário o envio ou não,
//pois dependendo do caso o $_POST pode atrapalhar o carregamento
data: function() {
//Não foi definido o envio?
if (!submit) {
//Não retorna os dados
return null;
//O envio foi definido, ou omitido
} else {
//Retorna os dados do formulário
return data;
}
}
//Quando a requisição estiver concluída
}).done(function(data) {
//Aguarda o carregamento da View
$(div).html(data).load(function() {
});
//Remove o loader
overlay.hide();
div.show();
//Inicializa o envento para tratar a submissão do form
formSubmit($("form"));
});
}
非常感謝。此解決方案不能解決我的問題,但正確回答了我的問題。我的問題是當用戶點擊瀏覽器的刷新按鈕,最終收集。 – mayconfsbrito
我不認爲你可以對瀏覽器刷新按鈕做任何事情,它總是會重新加載頁面。如果您需要保持狀態,則在頁面重新加載時(並使用服務器端會話或本地存儲來保持狀態),您必須手動處理它。 – bfavaretto