在使用 Uploadcare 时文件上传小部件,我注意到 Uploadcare 脚本不断重绘 HTML
标签。
我不确定重绘是否是正确的术语,但这是正在发生的事情:
检查 chrome devtools
HTML
标记突出显示,当您在元素上添加/删除属性时,行为相同。而且它似乎并没有结束,它只是每隔 N ms 就一直持续下去。大家可以在他们的主页上自己查一下Uploadcare.com , 只需打开 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>
如果你想避免轻弹,你有两个选择。您可以禁用 live initialization完全通过添加 UPLOADCARE_LIVE = false;
到 js 代码。或者您可以将任何自定义 id
属性添加到 html
标记。嘶嘶声不会改变它。
将来,我们计划使用 MutationObserver
来监视页面上的新小部件。
关于javascript - 为什么 uploadcare 每 N 毫秒重绘 html 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924531/