我正在使用 django 建立一个网站。在我的显示页面上,我有一个项目列表(带有名称结果),并且我有过滤器过滤“结果”并使用 ajax 调用在显示页面上获得另一个“过滤”列表。
现在,当我转到其他页面,然后单击后退按钮时,我返回到选择了过滤器的页面,但结果没有被过滤(我想要“过滤器”列表而不是“结果”列表回去)。使用后退按钮后如何进入最近的状态?基本上,使用 javascript 完成的所有操作以及后续操作都会被刷新。
谁能帮我这个。谢谢。
浏览器历史行为变得复杂,但我使用的一种技术是将状态嵌入哈希中。这将使浏览器将每个不同的哈希值视为历史中的不同页面,并且还允许您执行诸如为特定过滤器选择状态添加书签之类的操作。我使用jquery,沿着这些路线:
$(function() {
if (window.location.hash) {
// parse the hash and update your filter settings, then get the content and display it
};
function update_hash() {
// calculate the hash based on your filter
window.location.hash = new_hash;
};
};
然后将 update_hash 绑定为更改的事件处理程序。