从dom和内存中删除SVG

时间:2013-03-02 18:01:45

标签: javascript html5 canvas memory-leaks svg

我正在进行一些音乐可视化实验,它会根据所选的可视化从canvas或svg上的dancer.js中提取数据。我有4个选项:画布上的js,svg上的raphaeljs和最后一个中的three.js。

要保留声音元素并防止重新加载dancer.js,我会按以下方式加载不同的脚本:

            $('body > a').click(function(){
                $('canvas').remove();
                $('svg').empty();
                $('svg').remove();
                var id = $(this).attr('id');
                audioElement = $('#audio')[0];
                $.ajax({
                    type: "GET",
                    url: "js/"+id+"-ajax.js",
                    dataType: "script"
                });
            });

它应该只删除画布和svg如果有任何和不同的可视化被ajax捕获

  init = function() {
    ...
  }
  init();

它们共享相同的函数,如onKick,它在init中分别更改为已加载的脚本。 (onKick是为dance.js在正在播放的歌曲中“踢”时发射它。)

直到你开始在它们之间切换的那一刻,它才能工作得很好。在画布和画布之间切换几乎没有区别,但是当我从画布更改为svg,而不是回到画布时,framarate会大幅下降。

可能是因为svg被关在记忆中还是其他一些建议?

0 个答案:

没有答案