I've committed an experimental 'Live Preview' feature to CVS HEAD. If
enabled, it will load rendered preview text from JavaScript and insert
it into the page without having to submit the form and wait for the
entire page to re-load.
There are a couple potential advantages to this: first, it doesn't
trash the open edit page. The edit box's undo history should remain
intact, and if the load fails (eg you hit a rough patch with the
servers) your page is still there. (Some browsers treat the 'back'
button badly with respect to no-caching modes, and if you go back from
an error page to your last edit you lose everything.)
Second, it's less burdensome on the server. By skipping the skin
output, server time to handle a preview is cut about in half for
shorter pages (70ms to 34ms in my test, Athlon XP 2400+ w/ Turck
installed).
It's still incomplete and likely has a bunch of fun problems. For
starters, the category and interlanguage links aren't transferred, and
error conditions probably aren't all handled right. But, it could be
worthwhile to pursue.
I've tested it (lightly) in Safari 1.2.4, Firefox 1.0, and MSIE 6.0 (on
XP SP2). On browsers that don't support the XMLHttpRequest interface or
have scripting disabled, it should transparently fall back to form
submission and full-page loading. Set $wgLivePreview = true; to turn it
on.
-- brion vibber (brion @
pobox.com)