我目前正在开发一个项目,用户登陆页面以构建自定义循环地图。当用户选择地图类型时,会打开一个新的浏览器选项卡(这是指示发生的,我在这个问题上没有发言权)打开该特定的地图循环器。有速度,开始和停止时间的控件,以及一个启用15分钟自动刷新的复选框。目前,我使用JQuery捕获下拉列表和复选框,将值保存到cookie,然后在页面刷新时加载它们。
这显然工作正常,但在气象学中,我可能需要打开和循环两张地图。有时甚至更多。如果我使用cookie,那么第二张地图将使用这些值作为第一个。如果我更改第二个地图的选项,第一个地图将刷新这些选项。这不太理想。
我看到会话和cookie一样。如果我打开标签页,那些值将在每个地图循环器中保留。我的另一个选择是在URL上使用一个hashtag并保留在那里选择的值并在刷新时解析它。我错过了什么吗?我宁愿不使用hashtags,因为它似乎很乱,但我无法弄清楚如何在cookie中使用不同的值来使用多个标签。如果用户打开10个标签怎么办?我的问题是,对于这个应用程序,哪个是实现的最佳解决方案?
我们在页面中使用javascript / JQuery和php。我们的产品必须与Chrome,Firefox和IE兼容。
答案 0 :(得分:0)
为与单个地图匹配的Cookie数据预先添加唯一ID。因此map2上的option1变为map2option1
答案 1 :(得分:0)
按标签表示网页浏览器标签或同一页面上的div? 如果您的标签是一个页面上的元素,只需用uniq数据装饰它们
<div class="mytab" data-session="1">
//tab data
</div>
<div class="mytab" data-session="2">
//tab data
</div>
刷新数据时:
$('.mytab[data-session]').each(function(){
$.post('/refres', { sessionId : $(this).data('session')}, function(html){
$(this).html(html);
})
});
答案 2 :(得分:0)
如果您在每个标签上使用新标签,请创建隐藏的会话密钥
<input type="hidden" value="@Guid.NewGuid().ToString()" id="sessionKey" />
刷新并保存后将其传递给控制器。它对用户来说是隐藏的