0

当同一浏览器的两个实例在同一台计算机上由同一用户浏览时,页面如何具有某种唯一标识?每个浏览器都会向服务器发送 .load,其中包含对每个浏览器的不同数据的请求。服务器对两个浏览器的两个响应中的每一个都将包含加载中发送的唯一 ID。

情况:用户浏览到我的页面,其中有一个图表。该页面确实 .loads 到服务器以获取图表的近实时数据。

用户需要打开浏览器的第二个实例,到同一页面,选择不同的图表,以便同时观看两个图表。

浏览器的两个实例都需要发送一个 .load 请求不同的数据,并且 .load 还需要包含每个页面实例的唯一 ID。

4

2 回答 2

1

这可以使用 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' )

(请投票)

于 2012-09-10T22:35:10.580 回答
1

在我看来,这听起来更像是您对服务器的请求应该是完全自我描述和无状态的。然后,如果用户打开一个新的浏览器窗口并转到一个新图表,当页面向服务器请求图表的数据时,它只是告诉服务器它感兴趣的图表。根本不需要唯一的 ID。如果您认为这对您不起作用,那么也许您需要描述为什么需要唯一 ID,以便我们更好地了解如何提供帮助。

如果您觉得必须创建一个唯一的 ID,则让服务器创建一个 ID 并将其返回到页面。该页面可以将唯一 ID 保留在它自己的 javascript 中,然后如果它请求任何新图表,它可以传入该唯一 ID。任何其他打开的页面,即使在同一个浏览器中,也将有它自己的 javascript 存储,因此有它自己的唯一 ID。

仅供参考,您无法在客户端上生成 100% 保证的唯一 ID。如果你真的需要一个全世界唯一的 ID,那么你需要在一个公共服务器上生成它。

于 2012-09-10T18:15:21.097 回答