更改页面后附加事件会发生什么?

问题描述 投票:1回答:1

考虑这种情况:

2个略有不同的页面,有2个略有不同的表格:user-tableadmin-table。两者都实现分页。我们假设这个

<div class="pager">
    Pager implementation
</div>

我将事件附加到.pager,页码按钮,并在不同的文件中执行两次。每个文件具有不同的寻呼机实现(即调用不同的控制器)。脚本包含在相应的页面中,并在加载DOM后加载。

用户table.js

$('.pager').on('click', '.page', function() {
    $.get(...) //calling user-controller to get the results
};

管理员-table.js

$('.pager').on('click', '.page', function() {
    $.get(...) //calling admin-controller to get the results
};

不知何故,这有效,并没有冲突。对我来说这是违反直觉的。

当我导航到用户页面时,加载了user-table.js。单击页码后,将触发该事件并加载内容。

当我导航到管理页面并执行相同操作时会发生什么?它为什么有效?导航后,将加载第二个脚本并分配/委派新事件。不应该有冲突吗?上一页/脚本中的事件是否被遗忘?脚本将被缓存,我期待再次发生冲突,但事实并非如此。

有人可以向我解释工作流程或事件生命周期吗?离开页面后现有事件会发生什么变化?我试过谷歌搜索,但找不到任何相关的东西。

javascript jquery jquery-events
1个回答
1
投票

上一页/脚本中的事件是否被遗忘?

是。 HTML完全是无状态的。浏览器将仅考虑当前加载到DOM中的内容。触发beforeunload事件时,所有先前的页面都将从内存中删除。

© www.soinside.com 2019 - 2024. All rights reserved.