3

我目前正在开发一个用户登陆页面以构建自定义循环地图的项目。当用户选择地图类型时,一个新的浏览器选项卡(这是直接发生的,我在这件事上没有发言权)打开那个特定的地图循环器。有速度、开始和停止时间的控件,以及启用 15 分钟自动刷新的复选框。目前,我使用 JQuery 来捕获下拉列表和复选框,将值保存到 cookie,然后在页面刷新时将它们加载回来。

这显然工作正常,除了在气象学中,我可能需要打开和循环两张地图。有时甚至更多。如果我使用 cookie,则第二个地图将使用值作为第一个。如果我更改第二张地图的选项,第一张地图将使用这些选项刷新。这并不理想。

我看到会话和 cookie 是一样的。如果我打开选项卡,这些值将在每个地图循环器中持续存在。我的另一个选择可能是在 URL 上使用主题标签,并在此处保留选择的值并在刷新时将其解析回。我错过了什么吗?我宁愿不使用主题标签,因为它看起来很乱,但我不知道如何在 cookie 中使用不同值的多个选项卡。如果用户打开了 10 个标签怎么办?我的问题是,对于这个应用程序,哪个是实现的最佳解决方案?

我们在页面中使用 javascript/JQuery 和 php。我们的产品必须兼容 Chrome、Firefox 和 IE。

4

3 回答 3

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);
   })
});
于 2012-10-31T15:25:36.877 回答
0

如果您在每个选项卡上使用新选项卡,则创建隐藏的会话密钥

<input type="hidden" value="@Guid.NewGuid().ToString()" id="sessionKey" />

刷新并保存时将其传递给控制器​​。对用户隐藏

于 2012-10-31T15:40:27.957 回答
0

为匹配单个地图的 cookie 数据添加一个唯一 ID。所以 map2 上的 option1 变成了 map2option1

于 2012-10-31T14:54:52.640 回答