当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
how can a Javascript page have a unique ID when browsed by two instances of same browser?
在同一台计算机上,同一用户浏览同一浏览器的两个实例时,页面如何具有某种唯一标识?每个浏览器都会向服务器发送.load,其中包含对每个浏览器的不同数据的请求。服务器对两个浏览器的两个响应中的每一个都将包含在负载中发送的唯一ID。
情况:一个用户浏览到我的页面,其中有一个图表。页面加载到服务器以获取图表的接近实时的数据。
用户需要打开浏览器的第二个实例,进入同一页面,选择不同的图表,以便同时观看两张图表。
浏览器的两个实例都需要发送一个.load请求不同的数据,.load还需要为页面的每个实例包含一个唯一的ID。
这听起来更像是你对服务器的请求应该完全是自我描述的和无状态的。然后,如果用户打开一个新的浏览器窗口并转到一个新图表,当页面向服务器请求该图表的数据时,它只会"告诉"服务器它感兴趣的图表。根本不需要唯一的ID。如果你认为这对你不起作用,那么也许你需要描述为什么你需要一个唯一的ID,这样我们可能会更好地知道如何提供帮助。
如果你觉得你必须铸造一个唯一的ID,那么让服务器铸造ID并将其返回到页面。该页面可以将唯一ID保存在自己的javascript中,然后如果它请求任何新的图表,它可以传入该唯一ID。任何其他打开的页面,即使在同一浏览器中,也将有自己的javascript存储,从而有自己的唯一ID。
仅供参考,您无法在客户端上生成100%保证的唯一ID。如果你真的需要一个全世界唯一的ID,那么你需要在一个通用服务器上生成它。
这可以使用HTML5的sessionStorage来解决。我同时在两个FireFox浏览器上进行了测试。
present_ID = sessionStorage.unique_session_ID
adm( 'present_ID=' + present_ID )
if( present_ID == undefined || present_ID == "" ) // not set yet?
{
new_present_ID = Math.random()
adm( 'set=' + new_present_ID )
sessionStorage.unique_session_ID = new_present_ID
present_ID = new_present_ID
}
set_text( present_ID, 'unique_page_identification_id' )
(请投票)
相关文章:
- Javascript对象:这两个值有何不同
- JavaScript-找到一个具有数组语法的特定DOM元素并更新它
- Sencha Touch 2 它与我对 html5/javascript Web 开发的知识有何关系
- 防止 JavaScript 在 XML 具有空节点值时中断
- 在 JavaScript 中命名匿名函数有何不同
- 在JavaScript中的类中,push和concat的工作方式有何不同
- 使用生成的ID创建JavaScript集合的最具性能的方法
- 如何使我的json对象's字段名称在具有javascript的对象数组中具有的值
- JavaScript函数对象与Scala函数对象有何不同
- 在JavaScript中;obj”;但事实并非如此;t具有名为“;foo”;能够使用obj[“foo”]给出一个值
- RegEx在VBA和JavaScript中的处理方式有何不同?
- 用于摆姿势/索具人物的JavaScript库
- 基于javascript的网站有何不同?
- 具有空元素的有趣数组JavaScript行为
- Javascript:将值传递给具有数组属性的函数
- 如何通过具有数组行的第一项的值来删除/删除 javascript 数组中的行
- 在 JavaScript 中使用重排隐藏元素,它与 CSS 隐藏属性有何不同
- 列出JavaScript对象中具有空(未定义)值的属性
- 最快的纯Javascript图形可视化工具包是什么?
- 使用javascript阻塞浏览器创建具有数百万条记录的html表