我对 .NET MVC 框架的无状态特性有一些疑问。
我有一些 HTML 像
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
<button id="btnShowMore">Show More</button>
<a href="www.google.com">Google</a>
我的javascript就像
var maxDisplay = 5;
var unit = 5;
$("li").slice(maxDisplay).hide();
if ($("li").length <= maxDisplay) $('#btnShowMore').hide();
$('#btnShowMore').click(function () {
maxDisplay += unit;
$("li").slice(0, maxDisplay - 1).show();
if ($("li").length <= maxDisplay) $('#btnShowMore').hide();
});
现在,如果我展开我的列表,导航到 google,然后单击浏览器中的后退按钮,列表会忘记我所做的,并且只显示前 5 个列表项,这不是我想要的。
我想到了一些选择:
曲奇饼。不是我想要的,因为有很多这样的页面,我需要为每个页面设置 cookie
稍微操纵 url,比如利用 window.location.hash。也不好,因为那将是另一页
有一些传统的方法可以做到这一点吗?
提前致谢
更新:
似乎没有更多的解决方案出来了。我肯定更喜欢 localStorage 而不是 cookie,因为不需要在客户端和服务器之间传输这个变量,但是需要检查页面是第一次加载(清除缓存变量并显示 5 个项目)还是从导航返回加载(读取缓存和显示缓存的项目数)。
也许我应该和哈希一起去......