从ajax加载的页面运行脚本会有什么后果?

时间:2018-12-14 19:52:19

标签: javascript ajax single-page-application

我构建/管理SPA(单页应用程序)界面。它不使用VueJS或React等现代框架,而是使用AJAX。

这是一个自定义界面,可通过ajax加载部分页面。单击要编辑的项目时,将打开页面或模式页面上的窗口,并且该特定页面来自AJAX的所有HTML和JS依赖项都将注入到页面中。加载新页面时,现有的html被替换为html(new_content)

(我使用jQuery来实现大多数实际功能)

潜在问题:

在这些加载了ajax的页面中,它运行javascript,例如,“正在单击时附加到此按钮”,“正在启动数据表类”,以将内容加载到表中,等等。当加载另一个页面时,它将替换现有页面内容,则新页面会再次加载自己的JS。

1)即使从ajax加载了新页面,从Ajax页面加载的唯一变量仍然存在。 (在控制台中查看变量显示它们是否存在),我假设加载具有相同名称的变量将替换为新值。

2)即使我要求删除所有内容

,要添加的功能/类仍嵌入在内存中

另一个示例,如果我运行了setInterval()计时器, 已加载并替换了现有内容,则setInterval仍然 运行。

您在这里有什么想法?如果用户没有通过使用浏览器刷新来重新加载实际页面,那么一遍又一遍地加载这些ajax页面将最终耗尽客户端设备的内存吗?

是否有一种方法可以在加载每个页面后保持干净的状态,从而擦除内存中加载的现有变量?还是我要确保正在加载的每个页面都被包装到一个匿名函数中,加载每个页面后清除?

0 个答案:

没有答案