28
|
srmark · 技术社区 · 15 年前 |
1
36
您可以设置自己的窗口名,确切的语法现在会让我忘记,但您可以使用当前时间和会话ID在窗口加载时创建一个唯一的ID,然后使用该ID 这与在javascript window.open()函数中设置名称的方式相同(但您可以对self而不是新窗口进行设置)。 谷歌显示: self.window.name=myClass.getUniqueWindowID(thisSession); 更新关于您需要将这个从刷新保存到刷新,我做了一些测试,它看起来是从刷新保存到刷新。使用firefox 3,在初始加载时,窗口名为空,反复按ctrl+r,窗口名被填充。然后我对设置的名称代码进行了注释并重新加载,它仍然保留了名称。
更新我不得不注意到下面关于jquery的“jquery会话”插件的评论,它确实有效,提供了比这里讨论的更多的方式。 虽然 我们还应该明确指出它依赖于HTML5的Web存储, 旧IE不支持 版本。 企业仍然严重依赖于IE7(在巴西是“及以下”)。
基于
我找到了guid函数 here (为此我提出了一些代码清理)。 |
2
1
服务器随机生成一个ID,并在服务时将其存储在页面中(一些javascript变量)怎么样?然后在Ajax请求中包含该ID。它对浏览器刷新没有帮助,但是只要用户将页面留在原处(并且只让Ajax完成它的工作),它就可以正常工作。 |
3
1
这是很久以前的事了,但是今天罗伊·里科的回答帮助了我,所以我想分享我的经历。要处理页面刷新和页面backbutton的使用,我是这样做的:
-->现在,服务器可以识别guid并根据需要传递内容。 以下是我的代码(出于安全原因,我在服务器上创建的guid,语法“$guid来自FreeMarker,仅从服务器插入guid):
希望能帮助别人 顺便说一下,这种技术应该只在“非SEO页面”上使用,因为需要JavaScript来获取内容。但一般来说,SEO页面不需要标识标签会话。 当然,现在您可以利用HTML5会话存储,但我不想依赖它,因为我还需要更老的浏览器才能正常工作。 |
4
0
window.name可以被自定义的javascript库、日期计时器等覆盖。 我建议您使用dom head元标记来存储您的ID,而不是window.name。
页面加载后,必须通过该窗口中的Ajax加载所有内容,然后可以将此ID作为头(或数据)值附加到每个请求中。例如,在jquery中,使用以下代码:
要使用此解决方案,您必须能够访问服务器端的自定义头值。例如在Java Servlet中:
如果将分页、排序、筛选等信息存储在服务器端作为会话属性,则应将它们单独存储在单独的窗口ID-S上。 |
5
0
您可以使用HTML5会话存储,只需生成一个唯一的ID并将其设置在会话存储上! 每个窗口或选项卡都有自己的会话存储,这有什么酷呢? 例如: 如果我们在3个窗口上运行以下命令:
窗口1:
窗口2:
窗口3:
窗口1:
窗口2:
窗口3:
我相信您正在尝试保存一个变量(分别在每个选项卡/窗口上)。 会话存储具有魅力。 您可能面临的唯一问题是浏览器应该支持HTML5。 |
john4ster · 对父级不更改状态的响应回调 2 年前 |
Dylan L. · 为什么更新的状态没有返回到我的组件? 2 年前 |
kuk · 如何在React中回调后动态更改状态的对象值? 2 年前 |
Tú Nguyá» n · 更新状态时,我的输入没有更新值 2 年前 |