繁体   English   中英

用户在JavaScript中离开之前的HTML页面后会怎样?

[英]What happens with previous HTML page after users navigate away from it in JavaScript?

假设我有两个HTML页面,将它们称为page1.html和page2.html。 然后,用户通过调用分配或替换位置对象的方法从page1.html导航到page2.html。 我有一些问题,如下所示:

问题1:page1.html的DOM树会发生什么,当我们从page2.html导航回它时,它将被卸载并重新加载吗? 我可以从page2.html引用page1.html的DOM树吗?

Q2:如果我要在page1.html的套接字对象中维护套接字连接,是否可以将该套接字对象传递给page2.html? 我可以在page2.html中监听该套接字对象的事件吗?

问题3:我可以同时拥有page1.html和page2.html的共同对象。 我可以做一些事情,例如维护计时器以对该对象中的page1.html和page2.html都执行常见任务? 该对象类似于其他OOP语言中的单例对象。

问题1:page1.html的DOM树会发生什么,当我们从page2.html导航回它时,它将被卸载并重新加载吗?

或多或少。 浏览器缓存以前访问过的页面,并且使用“后退”导航重新访问时可能不会触发新的加载事件。 有些将使页面保持其先前状态,有些则不会。

我可以从page2.html引用page1.html的DOM树吗?

不会 。从DOM的角度来看, page1.html已经不复存在。

Q2:如果我要在page1.html的套接字对象中维护套接字连接,是否可以将该套接字对象传递给page2.html?

没有,但你可以在第1页关闭,以连载,将其发送到服务器,然后将其包含在第2页它可以恢复(CF JSON)。

我可以在page2.html中监听该套接字对象的事件吗?

如果它仍在page1中 ,则不是这样,但是您可以在服务器上模拟该行为。

问题3:我可以同时拥有page1.html和page2.html的共同对象。

不使用JavaScript。 但是,如果将对象传递给page2 (例如通过序列化或通过服务器的其他方法),则可以再次将其传递回。

我可以做一些事情,例如维护计时器以对该对象中的page1.html和page2.html都执行常见任务?

不,但是您也可以在服务器端进行此类操作。

该对象类似于其他OOP语言中的单例对象。

凉。

如果您描述了您实际想要做的事情(即要达到的结果,而不是要使用的实现方法),那么可能会建议一个合适的体系结构或设计模式,例如Abhi暗示的那样,一页应用程序可能适合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM