JavaScript:渲染更新完成后的事件侦听器

时间:2016-08-04 18:47:43

标签: javascript html innerhtml onload

我正在开发Android应用程序,方案是:

  1. 后台有一个带有静态HTML代码的webview,以及一个覆盖webview尚未准备好的启动图像视图(公司徽标)。
  2. 初始html代码中的window.onload启动与服务器的websocket连接以检索一些动态html代码。
  3. 根据检索到的动态html代码,使用innerHTML(或DOMParser)更新html文档。
  4. 当更新和渲染完成后,JavaScript代码会调用Java存根函数(java.didLoad),删除前景中的splash imageview以显示所有准备好的webview。
  5. 当只有静态html代码时,这很容易,因为window.onload正是我需要的。只有在一切准备就绪并完全呈现后才会调用它。问题是,当页面动态更新时,我找不到与window.onload完全相同的事件监听器。如果我在innerHTML调用之后立即调用java.didLoad,则渲染更新尚未完成,因此我可以看到webview内容的闪烁。如果我在检索到的html代码中包含的图像元素的img.onload中这样做没有区别,那么在渲染之前调用它并且过早地显示webview。与window.requestAnimationFrame相同。唯一有效的方法是使用一些时间间隔的setTimeout,但这是临时的,我真的想避免它。

    TL; DR 长话短说,在使用innerHTML或DOM操作更新html页面之后,是否有一个事件监听器函数在设置完所有并且渲染完成后调用?

    我知道以前有过类似的(不一样的)问题,但我尝试过的答案都没有。

0 个答案:

没有答案