2011-10-15 239 views
3

我加载一些HTML和JS使用AJAX:卸载外部js文件

主page.html中负载通过AJAX一个名为页页到load.html

<!-- main-page.html --> 
<html> 
... 
<script> 
$.ajax({ 
    type:"POST", 
    url:"page-to-load.html", 
    success:function(data) { 
    $("#some_id").html(data); 
    } 
}); 
</script> 
... 
</html> 

页面到load.html包括HTML和JS文件:

<!-- page-to-load.html ---> 
<script src="scripts-for-this-html.js"></script> 
<p>This is a HTML page working with above external .js file</p> 

正如你所看到的,我加载一个js文件,脚本换这 - html.js

这完美的作品。问题是,如果我再次加载(我的意思是,“#some_id”变空,并加载页面到load.html再次)中的所有脚本(脚本换这个-html.js)保持在浏览器内存(例如,如果我在这个.js文件中有一个事件,即使我已经从DOM中删除脚本元素,该事件也会重复多次,因为我已经加载了该文件)。

有什么办法得到这份工作?我不想一次包含所有.js文件(太多),我想按需求加载和卸载它们。

+1

如果问题是代码被重复*,那么,只加载一次代码而不是几次更有效? – JCOC611

+1

因此,根据需要,您加载代码一次,并且您有一个变量,指出文件是否之前加载过,因此如果是这样,那么只需通过正则表达式删除'