gpt4 book ai didi

javascript - 在 xmlHttpRequest 对象的生命周期中的哪一点,序列化的 XML 被解析为 DOM?

转载 作者:行者123 更新时间:2023-11-29 20:26:15 25 4
gpt4 key购买 nike

在 JavaScript 中,xmlHttpRequest.responseXML() 返回一个 DOM Document 对象。 DOM Document 对象是从 XML 结构的 HTTP 响应主体创建的。

xmlHttpRequest 对象生命周期中的什么时候,XML 字符串被解析为 DOM 文档

我可以想象它可能发生在两个地方之一。

  • responseXML() 被调用时。
    无需浪费资源将 XML 字符串解析为 DOM,直到您知道确实需要它。

  • 收到 HTTP 响应时。
    如果服务器返回文本/xml 内容类型,则很明显您已请求 XML,并且您可能希望将响应正文解析为 DOM,否则您无法对请求的数据做太多事情。

这两个选项都有一些优点,尽管我倾向于说只有在调用 responseXML 时才会解析 XML 字符串。

XML 字符串的解析发生在什么时候?

提问原因:我需要测量基于浏览器的 XML 反序列化性能,目的是将其与 JSON 反序列化性能进行比较。

最佳答案

流在接收时被解析是很有意义的。等待响应完成(或调用 responseXml 属性)意味着在接收最终字节和构建 DOM 之间引入了额外的延迟。似乎更好的方法是在接收流的同时构建 DOM,因此在完成后 DOM 就可以使用了。

请注意,如果 Content 类型未指定 XML 类型,则 MSXML 不会提供 DOM,并且 Mozilla 的实现允许您告诉它将接收到的内容视为 XML,尽管如此,一个重要的线索是Content-Type 另有指示。

如果在访问属性之前不解析 DOM,则以上都不是必需的。该属性也可以简单地尝试解析。因为在接收到内容时可能会构建 DOM,所以上述内容是必要的。

关于javascript - 在 xmlHttpRequest 对象的生命周期中的哪一点,序列化的 XML 被解析为 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/598250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com