删除外部js文件后会发生什么

时间:2011-03-15 23:43:01

标签: javascript memory external

<!-- Add-in device.js files are placed here -->
    <div id="deviceScript"></div>

当我选择一个新的(附加组件)设备并附加带有.src文件的脚本标记时,我一直在做的就是清除它。

我有一些含糊的想法,解开外部js文件可能会从内存中删除它的代码。如果没有,有办法吗?

不同脚本文件中的函数具有相同的名称 - 例如,我使用start()来设置每个设备。似乎最新的设备start()会覆盖内存中的那个 - 但我不确定覆盖是否意味着删除最后一个或者是否有一些可怕的渣滓堆积。

任何澄清都表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果您删除了javascript文件且网页已加载,则代码仍在内存中(至少浏览器可以访问它),因此您仍然可以“使用”它。如果您重新加载/刷新页面,代码将无法访问,因此您将无法使用它。我认为没有办法从内存中删除此代码(或者从目前为止浏览器可访问的位置)。

如果您希望在某个页面中使用它们,则在多个js文件中写入相同的函数名称并不是一个好习惯。将使用在最后声明的js中定义的函数,因此如果您调用该函数两次(在您的情况下为start()),您的函数()将执行相同的操作。

如果在同一个js上为两个​​函数写入相同的名称,它的工作方式类似。在其他语言中,您可能将myfunc(oneparm)和myfunc(parmone,parmtwo)作为两个独立的函数,根据传递的参数数量运行,在JavaScript中,最后定义的函数始终是一个运行,无论参数的数量。

请记住,javascript是一种客户端脚本语言

答案 1 :(得分:0)

这是我认为可能是一个答案,但也许这是另一个问题 - 这是否合乎逻辑?

上下文:访问者选择一个命名对象来显示一组键(比如一个是Color)。选择键会显示一个或多个设备名称(例如setColor)。选择设备名称会显示一组选项(例如红色,绿色,蓝色)。

在第二步中,我将先前的device.js与新的device.js交换。在选择选项调用其中的函数以执行操作之前,js有时间加载。

因此,如果任何函数名称与以前的函数名称重复,那么由于交换操作,它们会覆盖它们。这意味着我不必担心命名约定,而不是主函数的名称与设备名称相同...设备可以由任何人制作。也许每次都重新加载是个好主意。

有什么想法?感谢