为什么uploadcare每隔N ms重新绘制一次html标签?

Jo *_* E. 9 javascript jquery sizzle uploadcare

在使用Uploadcare文件上传小部件时,我注意到Uploadcare脚本不断重新绘制HTML标签.

我不知道是否重新油漆是正确的术语,但这里是正在发生的事情:检查镀铬 devtoolsHTML标签被突出显示,当您添加相同的行为/元素上删除属性.它似乎没有结束,它只是在每N ms继续.您可以在他们的主页Uploadcare.com自行查看,只需打开devtools并查看HTML标签即可.

任何人都知道它为什么这样做?这叫什么?它会给移动用户带来性能问题吗?

hom*_*omm 8

Uploadcare插件每100ms在页面上搜索新的小部件.这称为实时初始化.在内部,插件使用jQuery(使用Sizzle选择器引擎),这就是Sizzle实际工作的方式:它id在查询之前将元素添加到搜索范围的根元素,然后将其删除.您可以通过一个简单示例来验证这一点:

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
  setInterval(function() {
    $.find('[attr]', document.documentElement);
  }, 200);
</script>
Run Code Online (Sandbox Code Playgroud)

如果您想避免轻弹,您有两种选择.您可以通过添加到js代码来禁用实时初始化UPLOADCARE_LIVE = false;.或者,您可以idhtml标记添加任何自定义属性.嘶嘶声不会改变它.

将来,我们计划MutationObserver用于在页面上查看新的小部件.