如何知道脚本块或javascript代码的生命周期?

Hal*_*him 5 javascript jquery lifetime

我想知道一旦加载javascript块/功能总是可用的.因为我测试了一些东西,现在我有点困惑.我将一个脚本块定义为div.脚本块有一个事件处理函数,用于使用ajax重新加载div的元素.ajax调用返回div的简单html并将其替换为当前的.但这意味着要替换执行执行的脚本.我已经认为在替换语句之后脚本会被删除.但事实并非如此.替换语句执行后的代码行所以这些东西是如何工作的.你如何描述脚本块的生命周期?

T.J*_*der 8

script评估元素中包含的代码时,该代码评估的结果将成为页面运行时环境的一部分.删除script元素不会从环境中删除生成的结构(函数等).

因此,如果脚本定义函数,或者将事件处理程序挂钩到元素,或者在现有对象(包括全局对象)上创建新属性,那么这些函数,处理程序和属性将保留在内存中,即使script从DOM中删除了定义它们的那些(受制于通常的JavaScript垃圾收集;例如,任何地方未引用的对象都符合GC的条件,但该script元素与此无关).该script元素仅仅是用于将代码传送到浏览器的机制.