
iframe动态赋值src与直接设置src的性能差异
网页开发中,iframe常用于嵌入外部网页内容。然而,开发者发现动态赋值iframe src属性比直接设置src属性加载速度慢。这是为什么呢?
浏览器渲染页面时,通常自上而下依次渲染。直接在src属性中写入URL,浏览器会将iframe与其他页面元素一起进行初始渲染,因此加载看似同步。
但动态修改src属性则不同。它会触发iframe重新加载和渲染。由于页面其他部分已渲染完成,iframe的加载过程就显得格外突出,造成速度慢的错觉。 此外,动态加载可能导致页面分段渲染,而非整体同步渲染,进一步加剧这种感觉。
为了优化用户体验,可在iframe内容加载时显示加载动画,加载完成后再隐藏。 以下代码示例演示了这种方法:
iframeLoad() {
this.loading = true;
const iframe = this.$refs.iframe;
// 兼容IE和非IE浏览器
iframe.onload = () => {
this.loading = false;
};
}
通过加载动画,有效改善动态加载iframe时的用户体验。









