iframe动态赋值src与写死url渲染速度对比
当需要在页面中动态加载iframe内容时,开发者可能会遇到一个疑惑:为什么动态赋值src比直接在src中写死url后渲染内容要慢?
浏览器渲染页面采用的是从上到下的方式。因此,当iframe与页面其他元素同时加载时,会呈现出iframe中内容一下子全部出现的效果。而当动态赋值src时,浏览器会重新渲染iframe,这会让开发者感觉到iframe加载变慢了。
为了解决这个问题,开发者可以考虑在加载iframe时显示一个加载指示器,待iframe内容加载完成后再取消该指示器。这样可以有效提示用户 iframe 正在加载,缓解 perceived 慢的问题。
以下是实现加载指示器的方法示例:
iframeLoad() {
this.loading = true;
const iframe = this.$refs.iframe;
// 兼容处理
if (iframe.attachEvent) {
// IE
iframe.attachEvent("onload", () => {
this.loading = false;
});
} else {
// 非IE
iframe.onload = () => {
this.loading = false;
};
}
}










