【问题标题】:Can we prevent assignment to innerHTML from requesting resources?我们可以防止分配给innerHTML 请求资源吗?
【发布时间】:2012-04-26 18:08:43
【问题描述】:

以下代码会在 Firefox 和 Chrome 中生成对图像资源的 HTTP 请求。

var el = document.createElement('div');
el.innerHTML = "<img src='junk'/>";

作为一名程序员,我可能希望也可能不希望 el 被渲染。如果我不这样做,那么也许我不希望为 src 发送请求。

dojo.toDom() 显示相同的行为。

是否可以从字符串中获取文档片段,而不需要请求引用的资源?

【问题讨论】:

    标签: javascript dom


    【解决方案1】:

    使用DOMParser 从给定的字符串创建完整的文档结构。

    或者,使用beforeload 事件拦截请求。

    【讨论】:

    • 附言。方法一的演示:jsfiddle.net/4rkUU。方法 2 仅适用于 Webkit 扩展。
    【解决方案2】:

    使用字符串创建 DOM 元素而不是创建 documentFragments 并使用它们,内存要轻得多:

    var div = document.createElement('div');
    div.innerHTML = 'some text';
    document.getElementById('someparent').appendChild('div');
    

    可以替换为:

    var div = '<div>some text</div>';
    document.getElementById('someparent').innerHTML += div;
    

    【讨论】:

    • 我不相信这是问题中提出的问题。再读一遍。 -1
    猜你喜欢
    • 2018-03-31
    • 2023-03-09
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2020-01-08
    • 1970-01-01
    相关资源
    最近更新 更多