<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 20, 2009, at 7:30 PM, Boris Zbarsky wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Ian Hickson wrote:<br><blockquote type="cite">Actually what's going on is more subtle than that. When you set innerHTML, it's actually triggering the deferred scripts right there, if it has them loaded (e.g. inline scripts or cached scripts). If it doesn't have them loaded yet, it drops them on the floor and doesn't ever run them.<br></blockquote><blockquote type="cite">I've specced this, except that the spec requires that not-yet-loaded scripts be loaded then run, rather than dropped, before innerHTML continues, so there's no race conditions.<br></blockquote><br>Er... wait. &nbsp;So innerHTML has to block on network access? &nbsp;And possibly spin the event loop as it does so?<br><br>This doesn't seem desirable to me.... Why do we want this behavior?<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>innerHTML&nbsp;blocking&nbsp;on&nbsp;network&nbsp;access&nbsp;seems&nbsp;seriously&nbsp;problematic&nbsp;to&nbsp;me.&nbsp;I&nbsp;don't&nbsp;think&nbsp;blocking&nbsp;the&nbsp;UI&nbsp;is&nbsp;preferable&nbsp;to&nbsp;a&nbsp;race&nbsp;condition,&nbsp;when&nbsp;we&nbsp;are&nbsp;talking&nbsp;about&nbsp;a&nbsp;compatibility&nbsp;quirk&nbsp;for&nbsp;content&nbsp;doing&nbsp;something&nbsp;dubious.</div><div><br></div><div>Regards,</div><div>Maciej</div><div><br></div></body></html>