You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 20, 2018. It is now read-only.
according to the MDN documentation, when document.readyState === 'interactive' then the DOMContentLoaded has already fired.
The Rx.DOM.ready() observable checks to see if the readyState === 'complete', otherwise it listens for the DOMContentLoaded event. This seems incorrect to me, as the observable will be forever empty if the DOMContentLoaded event has already fired, and the readyState === 'interactive'.
The text was updated successfully, but these errors were encountered:
I've had the same problem. If I subscribe to Rx.DOM.ready() at just the wrong moment while readyState === "interactive", between readyState === "loading" and readyState === "complete", the subscription never sends a next or completion notification.
The WhatWG HTML Standard Section 12.2.6 "The end" details the order things are supposed to happen in. In short, the order is:
readyState is set to "interactive"
parse & execute all the non-async scripts
DOMContentLoaded is fired at the Document
parse & execute all the async scripts
readyState is set to "complete"
load is fired at the Window
Therefore it is entirely possible that DOMContentLoaded has fired already but readyState is not yet "completed".
jQuery handles this case correctly by invoking the callback immediately (on next event loop iteration) if readyState is either "complete" or not "loading". Else it adds the DOMContentLoaded event listener.
Rx.DOM.ready() should handle this the same way jQuery.ready() does.
I'd submit a pull request for this, but there's currently no test for Rx.DOM.ready(). (The test link in the docs 404s.) I'm not sure how a test for this particular event should be done. Test with an actual page's / iframe's load events or completely fake the events like all the other event & event shortcut tests do?
according to the MDN documentation, when
document.readyState === 'interactive'
then theDOMContentLoaded
has already fired.The
Rx.DOM.ready()
observable checks to see if thereadyState === 'complete'
, otherwise it listens for theDOMContentLoaded
event. This seems incorrect to me, as the observable will be forever empty if theDOMContentLoaded
event has already fired, and thereadyState === 'interactive'
.The text was updated successfully, but these errors were encountered: