您使用某种浏览器识别 ID(因此您可能知道给定用户是谁)跟踪给定浏览器的选择是:
- 饼干
- 本地存储
用于存储 1200 按钮状态的选择是:
- 服务器提供给网页的状态的服务器端存储
- Cookies(可能必须将数据折叠到每个按钮一位 0
- 本地存储
因此,例如,您可以将在 cookie 中存储浏览器标识值与在服务器端数据库中存储实际按钮状态相结合。然后,当页面呈现时,您在数据库中查找 cookie 中的 browserID 的按钮状态,然后从呈现的 HTML 页面中禁用或删除相关按钮。
您可以通过将 1200 个按钮状态折叠为每个按钮一位来完成 cookie 中的所有存储。使用 AZ 和 az 以及 0-9 和几个符号,您可以轻松地为每个字符设置 64 个值,这将允许您存储每个字符 32 个按钮的开/关状态,因此可以存储 1200 个按钮的开/关状态38 个字符,很容易放入 cookie。如果您也必须为每个按钮存储时间/日期,那么这将不适合 cookie,因此您将被留给服务器端存储或本地存储。
仅供参考,我希望您意识到任何客户端方案都很容易解决。事实上,如果您只是想阻止用户多次访问同一个 URL,他们所要做的就是将原始 URL 加入书签,然后他们可以随意访问,甚至无需访问您的网页。或者,他们可以只擦除 cookie 或本地存储。或者,他们可以只使用不同的浏览器。
防止多次访问的唯一真正方法是要求用户身份验证并验证(在您的 Web 服务器上)在呈现页面之前允许给定登录用户访问任何给定页面。因此,如果您想稳健地执行此操作,则必须全部在服务器端完成,并且您将需要某种站点登录。