Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 区分会话id为';JS/HTML中的s(和ruby)_Javascript_Html_Sinatra - Fatal编程技术网

Javascript 区分会话id为';JS/HTML中的s(和ruby)

Javascript 区分会话id为';JS/HTML中的s(和ruby),javascript,html,sinatra,Javascript,Html,Sinatra,我有一些代码将jQuery发布到我的API中,做了一些魔术,然后使用Pusher将数据推回到浏览器中 目前我正在使用Sinatra,提取会话id,并将其放在html的一个隐藏值中。然后,当按下按钮触发JS函数时,它会提取这个值,并将其传递给API。然后,我的代码只会记住并将其设置为通道ID,然后将数据推回 它工作得很好…除非我打开了多个浏览器,否则两个浏览器都有相同的会话id。因此,在一个浏览器上触发API会将数据推送到所有打开的实例。我的问题是:是否有一种“最佳实践”方法来做到这一点并区分标签

我有一些代码将jQuery发布到我的API中,做了一些魔术,然后使用Pusher将数据推回到浏览器中

目前我正在使用Sinatra,提取会话id,并将其放在html的一个隐藏值中。然后,当按下按钮触发JS函数时,它会提取这个值,并将其传递给API。然后,我的代码只会记住并将其设置为通道ID,然后将数据推回

它工作得很好…除非我打开了多个浏览器,否则两个浏览器都有相同的会话id。因此,在一个浏览器上触发API会将数据推送到所有打开的实例。我的问题是:是否有一种“最佳实践”方法来做到这一点并区分标签


当然,我可以用JS生成一个随机数,并将其用作我的值,但出于某种原因,它似乎是错误的。想法?

如果您希望单独的选项卡具有单独的会话,那么您就不能在会话中使用cookie,因为同一站点上浏览器中所有选项卡的cookie都是相同的。您可以将会话作为查询参数放在URL中,只需确保在该选项卡中的用户更改页面时保留会话即可。我知道有一些基于Java的后端框架可以做到这一点。你经常在URL中看到
sessionId=xxxxxx
。我最后做了一些与你所说的类似的事情。我只是创建了一个随机的24个字符的“会话id”,通过jquery帖子将其传递到后端。这对我来说很好,但我认为可能有更好/更“标准”的方法。你应该把你的解决方案作为改进网站的答案