Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery'加载HTML;在反复删除HTML后,多次删除getScript_Javascript_Jquery_Single Page Application_Getscript - Fatal编程技术网

Javascript 使用JQuery'加载HTML;在反复删除HTML后,多次删除getScript

Javascript 使用JQuery'加载HTML;在反复删除HTML后,多次删除getScript,javascript,jquery,single-page-application,getscript,Javascript,Jquery,Single Page Application,Getscript,我有一个用HTML/JavaScript/JQuery/CSS编程的SPA(单页应用程序) 每次单击导航链接时,主div都会通过ajax命令加载一块HTML/JavaScript/JQuery/CSS,并使用getScript函数加载该块的JavaScript/JQuery部分 一旦用户单击另一个链接,主div将通过remove()函数被删除,新的块及其JavaScript/Jquery将替换它 问题是:当我第二次、第三次等加载main div的内容时(如果用户单击另一个链接,然后返回到此链接)

我有一个用HTML/JavaScript/JQuery/CSS编程的SPA(单页应用程序)

每次单击导航链接时,主div都会通过ajax命令加载一块HTML/JavaScript/JQuery/CSS,并使用getScript函数加载该块的JavaScript/JQuery部分

一旦用户单击另一个链接,主div将通过remove()函数被删除,新的块及其JavaScript/Jquery将替换它

问题是:当我第二次、第三次等加载main div的内容时(如果用户单击另一个链接,然后返回到此链接),我是否再次运行getScript函数来加载JavaScript/JQuery?如果是这样的话,它会不会将“on”和其他事件相互绑定,或者remove()函数会处理它,并且不会出现任何内存泄漏

谢谢你的回复

来自

与.empty()类似,.remove()方法从DOM中取出元素。如果要删除元素本身以及其中的所有内容,请使用.remove()。除了元素本身,与元素关联的所有绑定事件和jQuery数据都将被删除。要在不删除数据和事件的情况下删除元素,请改用.detach()

因此,绑定在div及其子代上的所有事件都将被删除,并且可以安全地反弹。但是,如果您注入的JavaScript将事件绑定到div之外的东西,如文档、窗口、主体等。。将绑定多个事件,这可能会在非故意的情况下导致问题

从jQuery 1.4开始,同一事件处理程序可以多次绑定到一个元素。当使用event.data功能时,或者当事件处理程序函数周围的闭包中存在其他唯一数据时,这尤其有用


如果您必须从重复运行的脚本中绑定到更高级别的元素,那么在绑定事件之前,您应该查看使用。

我只使用“开”绑定,并且只绑定到特定的选择器,而不绑定到正文或html元素。如果您的选择器在被删除的范围内,那么您是安全的。通过隐藏和显示最后的n个div,而不是删除它们,您可能会获得一点性能提升,但我怀疑这是否值得努力。