在什么条件下调用Parse HTML事件?

lio*_*ior 5 javascript jquery dom google-chrome google-chrome-devtools

我正在尝试调试我的具有多个主干视图的HTML页面的渲染瓶颈.我使用了Chrome Dev Tools的Timeline分析器,看到了大量的Parse HTML事件.我的问题是:

这是否一定意味着DOM每次都被触摸,或者在分离的jquery对象中操作HTML时是否也触发了Parse HTML事件?

Bla*_*res 3

免责声明:除了它是一个框架之外,我对主干一无所知。

可能意味着DOM每次都会被触及,但并不一定需要。当您加载HTML文档以及使用这些 innerHTML, outerHTML, innerText insertAdjacentHTML,DOMParser界面之一时,显然您会触发解析事件,但这些只是冰山一角。很多东西都会触发解析 HTML 事件。

例如:

setInterval(function(){
  var parser = new DOMParser();
  parser.parseFromString('<p>lorem</p>','text/html');
},5000);
Run Code Online (Sandbox Code Playgroud)

这将每 5 秒触发一次HTML解析器,但不会触及DOM。但是,当您使用例如时,document.body.innerHTML = '<p>Hello</p>' 您将触发解析事件以及触摸DOM。因此,即使您不直接接触 DOM,您也可以拥有解析事件。