如何在JavaScript中获取时间戳?
与Unix的时间戳类似的东西,即代表当前时间和日期的单个数字.无论是数字还是字符串.
在使用JSP和Servlets在java中实现的Web应用程序中; 如果我在用户会话中存储信息,则从同一浏览器的所有选项卡共享此信息.如何在浏览器选项卡中区分会话?在这个例子中:
<%@page language="java"%>
<%
String user = request.getParameter("user");
user = (user == null ? (String)session.getAttribute("SESSIONS_USER") : user);
session.setAttribute("SESSIONS_USER",user);
%>
<html><head></head><body>
<%=user %>
<form method="post">
User:<input name="user" value="">
<input type="submit" value="send">
</form>
</body></html>
Run Code Online (Sandbox Code Playgroud)
将此代码复制到jsp页面(testpage.jsp)中,将此文件部署在服务器上的Web应用程序的现有上下文中(我使用Apache Tomcat),然后使用正确的URL(localhost/context1/testpage.jsp)打开浏览器(FF,IE7或Opera ),键入您在输入中的姓名并提交表格.然后在同一浏览器中打开一个新选项卡,然后您可以在新选项卡上看到您的名称(从会话中获取).小心浏览器缓存,有时似乎不会发生,但它在缓存中,刷新第二个选项卡.
谢谢.
我想维护每个浏览器选项卡的会话状态.
这在ASP.NET中是否容易(甚至可能)?
示例:用户在firefox中按Ctrl-T 5次,并在每个选项卡中访问该站点.我希望每个选项卡在服务器上都有自己的会话状态
所以在大多数当前浏览器中都有Tabs的功能,有没有办法获得Tab索引?
所以标签1在其中打开了www.google.com,标签2中打开了www.google.com,有没有办法识别标签索引是什么?
伪代码:
if($tab == 2) {
alert "Tab 2 is active\n";
}
if($tab == 1) {
alert "Please use Tab 2 as this is Tab 1\n";
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,我搜索的所有关于标签的内容都与网页本身的标签索引相关,叹息......
我目前正在使用window.sessionStorage来存储唯一生成的会话 ID。此 ID 将传递给对服务器的所有 ajax 调用,并在页面导航和重新加载期间保持不变。
这似乎非常适合我的目标浏览器,但有一个警告:Chrome 中的重复选项卡功能。
复制选项卡将会话存储复制到新选项卡。当新选项卡加载并与服务器通信时,它现在具有与复制的目标选项卡相同的“唯一”标识符。
有什么方法可以区分两个重复的选项卡吗?或者它们真的是重复的并且两者之间没有任何信息不同?
选项卡/窗口关闭后,任何内容都不会保留,因此即使是简单的数字选项卡 ID 或任何内容,只要它对于当前实例是唯一的,都可以工作。
我想检测用户是否在同一会话中打开了多个窗口或标签,如果他这样做了 - 我想在屏幕上打印一个特殊信息.
这个限制只应该在一个特殊的URL中,所以如果用户打开两个带有URL的标签/窗口:http://page.com/limite.htm - 我想打印特殊信息.当用户打开两个带有网址的窗口/标签时:http://page.com/limite.htm和http://page.com/index.htm - 一切正常,我不会显示任何信息.
可能吗?谢谢.
我正在调试在多个浏览器选项卡中运行我们的Web应用程序并使用log4javascript添加客户端日志的问题.我现在正在尝试确定哪个日志行由哪个浏览器选项卡写入,因此我想为每个日志行添加唯一的选项卡ID.
这可以归结为我需要一种方法来识别浏览器选项卡是"新的"并需要接收新的选项卡ID.已收到标签ID的标签应保留此ID.
但我还没有找到一种方法来存储这样的ID:
这是我尝试过的:
如果选项卡的会话存储尚未包含此类ID,请将选项卡ID 存储在会话存储中并生成新ID.
这在大多数情况下都很有效.但是,在某些情况下,新选项卡会以其打开的选项卡的会话存储的完整副本开始.当通过单击引用新窗口目标的超链接打开新选项卡时,或者选项卡重复时,似乎就是这种情况.在这种情况下,我们无法区分两个选项卡,因此两个选项卡最终都使用相同的选项卡ID.
使用jQuery.data()将选项卡ID附加到HTML元素,如果HTML元素的数据尚未包含此类ID,则生成新ID.
这是愚蠢的,因为它显然无法使标签重新加载.
将选项卡ID存储在包含我们的应用程序的iframe 的window.name中,如果window.name尚未包含此ID,则生成新ID.
这不起作用,因为生成HTML iframe标记的嵌入应用程序(我们无法更改)会设置iframe名称,因此每次重新加载选项卡后标签ID都会丢失.
将选项卡ID存储在window.top.name中,如果window.top.name尚未包含此ID,则生成新ID.
这不起作用,因为我们无法设置window.top.name,因为跨站点安全性约束(嵌入应用程序托管在与iframe内容不同的域中).
在包含我们的应用程序的iframe中嵌入另一个iframe,将该标签ID存储在该iframe的window.name中,如果内部iframe的window.name尚未包含此类ID,则生成一个新ID.
这不起作用,因为即使我们在打开它时没有显式设置内部iframe的名称,iframe的名称也会在tab重新加载时重置为空字符串.这是我们打开内部iframe的方式:
<iframe id="iframe2" src="index.jsp"></iframe>
我理解为什么前四个选项不起作用.我不确定为什么第五种选择不起作用,并怀疑我可能犯了一个小错误.
如果没有,我想知道是否有任何其他方式可以让我确定标签是新的,因此需要接收新的标签ID.
要求是在用户单击"提交"按钮时向数据库发送唯一ID.所以我使用的是Javascript Math.random方法.我只是想知道获得相同数量和使用的位数的机会或可能性Math.random.