Coldfusion 使用选项卡式浏览保留会话变量

Coldfusion 使用选项卡式浏览保留会话变量,coldfusion,session-variables,Coldfusion,Session Variables,对于此代码: page1.cfm <form action="page2.cfm" method="post"> <input type="text" name="name" /> <input type="submit" /> </form> page2.cfm <cfset session.name = form.name> <cflocation url="page3.cfm" addtoken="no"> pag

对于此代码:

page1.cfm
<form action="page2.cfm" method="post">
<input type="text" name="name" />
<input type="submit" />
</form>

page2.cfm
<cfset session.name = form.name>
<cflocation url="page3.cfm" addtoken="no">

page3.cfm
<cfdump var="#session.name#">
page1.cfm
第2.cfm页
第3.cfm页
如果您这样做:

  • 在任何浏览器上浏览至page1.cfm
  • 提交带有“value1”的表格
  • 打开一个新选项卡
  • 浏览至page1.cfm并提交带有“value2”的表格
  • 返回到第一个选项卡并刷新页面
您将注意到,session.name的值在第一个选项卡上更改

在中,其中一个答案后面是评论,“如果选项卡式浏览导致会话变量出现问题,则说明您做得不对”


那么,你是如何做到这一点的呢?我们的目标是在第一个选项卡上保留“value1”,在第二个选项卡上保留“value2”。

希望斯科特能在这里发表自己的评论/回答,但我怀疑你误解了他的评论。你在这里描述的正是浏览对我的作用。在“选项卡式”浏览出现之前,当您打开一个新的浏览器窗口而不关闭现有窗口时,也会出现同样的问题(无论您打开了多少个浏览器窗口,现在仍然会出现这种情况)。ColdFusion服务器将仅为用户打开的每个浏览器实例维护一个会话。因此,当用户注销基于会话的应用程序时,我们所有人都会显示警告。类似于“在退出所有浏览器窗口之前,您的会话不会完全关闭”。或者当他们登录“您已经有一个活动会话,您的其他会话将被终止”。然后是标签浏览。选项卡只不过是另一个浏览器实例,就像以前一样,只包含在同一个窗口中

因此,选项卡式浏览不会导致会话变量出现问题,它们是按设计工作的。这就是它的工作原理。这是预期的行为。你的期望是错误的。我确信有一些方法可以让它按照您期望的方式工作,就像编程中总是有的那样,但这与浏览器的设计方式背道而驰。这是你真正想去的方向吗


重复问题-。你会在这里看到一些例子,但它们都是黑客试图使其工作方式与设计不同。

希望斯科特能在这里发表自己的评论/回答,但我怀疑你误解了他的评论。你在这里描述的正是浏览对我的作用。在“选项卡式”浏览出现之前,当您打开一个新的浏览器窗口而不关闭现有窗口时,也会出现同样的问题(无论您打开了多少个浏览器窗口,现在仍然会出现这种情况)。ColdFusion服务器将仅为用户打开的每个浏览器实例维护一个会话。因此,当用户注销基于会话的应用程序时,我们所有人都会显示警告。类似于“在退出所有浏览器窗口之前,您的会话不会完全关闭”。或者当他们登录“您已经有一个活动会话,您的其他会话将被终止”。然后是标签浏览。选项卡只不过是另一个浏览器实例,就像以前一样,只包含在同一个窗口中

因此,选项卡式浏览不会导致会话变量出现问题,它们是按设计工作的。这就是它的工作原理。这是预期的行为。你的期望是错误的。我确信有一些方法可以让它按照您期望的方式工作,就像编程中总是有的那样,但这与浏览器的设计方式背道而驰。这是你真正想去的方向吗


重复问题-。你会在这里看到一些例子,但它们都是黑客试图使其工作方式与设计不同。

希望斯科特能在这里发表自己的评论/回答,但我怀疑你误解了他的评论。你在这里描述的正是浏览对我的作用。在“选项卡式”浏览出现之前,当您打开一个新的浏览器窗口而不关闭现有窗口时,也会出现同样的问题(无论您打开了多少个浏览器窗口,现在仍然会出现这种情况)。ColdFusion服务器将仅为用户打开的每个浏览器实例维护一个会话。因此,当用户注销基于会话的应用程序时,我们所有人都会显示警告。类似于“在退出所有浏览器窗口之前,您的会话不会完全关闭”。或者当他们登录“您已经有一个活动会话,您的其他会话将被终止”。然后是标签浏览。选项卡只不过是另一个浏览器实例,就像以前一样,只包含在同一个窗口中

因此,选项卡式浏览不会导致会话变量出现问题,它们是按设计工作的。这就是它的工作原理。这是预期的行为。你的期望是错误的。我确信有一些方法可以让它按照您期望的方式工作,就像编程中总是有的那样,但这与浏览器的设计方式背道而驰。这是你真正想去的方向吗


重复问题-。你会在这里看到一些例子,但它们都是黑客试图使其工作方式与设计不同。

希望斯科特能在这里发表自己的评论/回答,但我怀疑你误解了他的评论。你在这里描述的正是浏览对我的作用。在“选项卡式”浏览出现之前,当您打开一个新的浏览器窗口而不关闭现有窗口时,也会出现同样的问题(无论您打开了多少个浏览器窗口,现在仍然会出现这种情况)。ColdFusion服务器将仅为用户打开的每个浏览器实例维护一个会话。因此,当用户注销基于会话的应用程序时,我们所有人都会显示警告。类似于“在退出所有浏览器窗口之前,您的会话不会完全关闭”。或者当他们登录“您已经有一个活动会话,您的其他会话将被终止”。然后是有标签的眉毛