Javascript Safari中的JS性能问题
我在Safari中遇到了脚本问题。该脚本的基本功能是,它使用jqueryui的Sortable函数来启用SortableJavascript Safari中的JS性能问题,javascript,safari,tinymce,Javascript,Safari,Tinymce,我在Safari中遇到了脚本问题。该脚本的基本功能是,它使用jqueryui的Sortable函数来启用Sortablediv。div中有TinyMCE实例。为了使TinyMCE内容在DOM更改后保持不变,我必须运行一个TinyMCE函数,该函数在可排序开始时清除内容,在可排序停止时恢复内容 在实现了这个持久化内容的解决方法之后,我发现在Safari 7.0中放置div时出现了严重的性能问题。Chrome和Safari的性能非常出色 在Safari中进行了一些Javascript评测之后,我看到
div
。div
中有TinyMCE实例。为了使TinyMCE内容在DOM更改后保持不变,我必须运行一个TinyMCE函数,该函数在可排序开始时清除内容,在可排序停止时恢复内容
在实现了这个持久化内容的解决方法之后,我发现在Safari 7.0中放置div
时出现了严重的性能问题。Chrome和Safari的性能非常出色
在Safari中进行了一些Javascript评测之后,我看到了以下内容:
下面是对isVisible()
函数的深入分析,该函数耗时1.82秒:
需要注意的几件事:
- 其中一些函数被调用了近50万次:o
- 这些函数都不是源于我编写的代码
- 它们似乎与自动填充有关
- 这些昂贵的功能都没有出现在Chrome或Firefox配置文件中
textarea
字段,这可能会提示某种自动填充活动
所以…我有三个问题:
家庭元素是否被删除和重新添加,并有听众?如果是这样,并且事件侦听器没有被清除,这将是一个内存泄漏,可能会导致您看到的内容,因为当元素被添加回时,侦听器会被复制,因此它会以指数形式增长,并且每个操作都会加倍、三倍、四倍,等等,这取决于它是否在做会影响eventListeners的事情。