MathJax works reasonably well, but I can almost read the TeX source out loud faster than the browser renders it (together with PDF.js, this has been my go-to counterexample whenever someone claims that JavaScript is performant).
With formula-heavy text, I'm forced to split documents artificially into multiple short pages to make rendering reasonably fast.
KaTeX looks quite promising, but it was missing support for quite a bit of basic markup the last time I checked. Perhaps it's better now.