Javascript 为什么uploadcare每N毫秒重新绘制一次html标记?
在使用文件上传小部件时,我注意到Uploadcare脚本不断地重新绘制Javascript 为什么uploadcare每N毫秒重新绘制一次html标记?,javascript,jquery,sizzle,uploadcare,Javascript,Jquery,Sizzle,Uploadcare,在使用文件上传小部件时,我注意到Uploadcare脚本不断地重新绘制HTML标记 我不确定重新喷漆是否是正确的术语,但下面是正在发生的事情: 选中chromedevtools将突出显示HTML标记,这与添加/删除元素属性时的行为相同。而且它似乎没有结束,它只是在每N毫秒继续。你可以在他们的主页上自己检查它,只需打开devtools并查看HTML标记 有人知道它为什么这么做吗?它叫什么?这会不会给移动用户带来性能问题?Uploadcare插件每隔100毫秒就会在页面上搜索新的小部件。这称为实时初
HTML
标记
我不确定重新喷漆是否是正确的术语,但下面是正在发生的事情:
选中chromedevtools
将突出显示HTML
标记,这与添加/删除元素属性时的行为相同。而且它似乎没有结束,它只是在每N毫秒继续。你可以在他们的主页上自己检查它,只需打开devtools
并查看HTML
标记
有人知道它为什么这么做吗?它叫什么?这会不会给移动用户带来性能问题?Uploadcare插件每隔100毫秒就会在页面上搜索新的小部件。这称为实时初始化。该插件在内部使用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>
setInterval(函数(){
$.find(“[attr]”,document.documentElement);
}, 200);
如果要避免轻弹,有两种选择。您可以通过添加UPLOADCARE\u LIVE=false来禁用所有功能代码>到js代码。或者,您可以将任何自定义的id
属性添加到html
标记中。Sizzle不会改变它
将来,我们计划使用MutationObserver
来监视页面上的新窗口小部件。他们不断删除和添加id属性。您可以右键单击html节点,然后选择“属性修改时中断”以自己确认这一点。他们为什么这么做,不确定,如果你想的话,你可以挖掘他们的代码,但对我来说,这听起来像是某种黑客行为。@Nit-nice诡计!无论他们的原因是什么,我都无法使用devtools编辑css样式,因为它一直在重新绘制:|有一个watch.js似乎触发了这一点(并不断发布到btw)@RetoAebersold我认为这是他们网站使用的另一个脚本,不是api的一部分,因为我在本地机器上看不到它。有什么办法可以阻止它吗?有没有关于MutationObserver补丁的更新?“这让我快发疯了。”李,现在就用其中一种方法来挽救你的理智吧。在html元素顶部使用ID
是最简单的方法。