在什么情况下调用 Parse HTML 事件?
Under what conditions does the Parse HTML event get called?
我正在尝试调试具有多个 backbone 视图的 HTML 页面呈现中的瓶颈。我使用了 Chrome Dev Tools 的时间线分析器并看到了大量的 Parse HTML 事件。我的问题是:
这是否必然意味着 DOM 每次都被触摸,或者在分离的 jquery 对象中操作 HTML 时是否也会触发 Parse HTML 事件?
免责声明:我对 backbone 一无所知,只知道它是一个框架。
可以表示DOM每次都被触动,但不一定。当您加载 HTML 文档时,以及当您使用其中一个 innerHTML
、outerHTML
、innerText
insertAdjacentHTML
, DOMParser
接口不过这些只是冰山一角。很多东西都会触发 parse HTML 事件。
例如:
setInterval(function(){
var parser = new DOMParser();
parser.parseFromString('<p>lorem</p>','text/html');
},5000);
这将每 5 秒触发一次 HTML 解析器,但不会触及 DOM。
但是当你使用例如 document.body.innerHTML = '<p>Hello</p>'
您将触发解析事件以及触摸 DOM。
因此,即使您没有直接接触 DOM.
,也可以进行解析事件
我正在尝试调试具有多个 backbone 视图的 HTML 页面呈现中的瓶颈。我使用了 Chrome Dev Tools 的时间线分析器并看到了大量的 Parse HTML 事件。我的问题是:
这是否必然意味着 DOM 每次都被触摸,或者在分离的 jquery 对象中操作 HTML 时是否也会触发 Parse HTML 事件?
免责声明:我对 backbone 一无所知,只知道它是一个框架。
可以表示DOM每次都被触动,但不一定。当您加载 HTML 文档时,以及当您使用其中一个 innerHTML
、outerHTML
、innerText
insertAdjacentHTML
, DOMParser
接口不过这些只是冰山一角。很多东西都会触发 parse HTML 事件。
例如:
setInterval(function(){
var parser = new DOMParser();
parser.parseFromString('<p>lorem</p>','text/html');
},5000);
这将每 5 秒触发一次 HTML 解析器,但不会触及 DOM。
但是当你使用例如 document.body.innerHTML = '<p>Hello</p>'
您将触发解析事件以及触摸 DOM。
因此,即使您没有直接接触 DOM.