代码之家  ›  专栏  ›  技术社区  ›  XwipeoutX

在同一域的两个iframe中加载同一会话

  •  0
  • XwipeoutX  · 技术社区  · 15 年前

    我要求在一个页面上有多个iframe,所有iframe都相互作用。应用程序的布局方式要求这些iframe在同一会话中运行,以便与其他iframe共享关于所选内容等的数据。

    问题是在第一个页面加载时,两个iframe都加载一个URL,显然请求中没有会话cookie。因此,两个iframe都创建了一个新会话并将其数据放入其中。但是,它们都会发送会话cookie,最后一个请求会覆盖前面的请求。从这里开始,两个iframe使用相同的会话,但只有最后加载的iframe中包含有效的会话数据。

    如果我刷新“container”页面,一切正常(因为会话cookie是有效的)。

    不幸的是,由于“container”应用程序中的限制,我们无法在其中指定显式的加载顺序。已经想到了那个解决方案。。。

    1 回复  |  直到 15 年前
        1
  •  0
  •   XwipeoutX    14 年前

    所以我解决了这个问题(我真的应该在一年前把这个贴出来)。。。

    基本上,当用户加载页面时,我确保会话cookie与当前执行的请求相同。因此,对于某个特定用户的#1请求,我只是照常进行,除非我注意到该用户有一个请求正在进行。

    当1仍在运行时传入的任何请求都会在OnBeginRequest中被延迟,直到1初始化了会话。当#1初始化其会话时,他用会话信息更新共享实例,然后释放所有其他线程。

    效果很好。

    推荐文章