diff --git a/test/sample-dynamic-2.html b/test/sample-dynamic-2.html
index 37e6717bb..77058e56c 100644
--- a/test/sample-dynamic-2.html
+++ b/test/sample-dynamic-2.html
@@ -23,6 +23,7 @@ var Preview = {
timeout: null, // store setTimout id
mjRunning: false, // true when MathJax is processing
+ mjPending: false, // true when a typeset has been queued
oldText: null, // used to check if an update is needed
//
@@ -67,15 +68,20 @@ var Preview = {
//
CreatePreview: function () {
Preview.timeout = null;
- if (this.mjRunning) return;
+ if (this.mjPending) return;
var text = document.getElementById("MathInput").value;
if (text === this.oldtext) return;
- this.buffer.innerHTML = this.oldtext = text;
- this.mjRunning = true;
- MathJax.Hub.Queue(
- ["Typeset",MathJax.Hub,this.buffer],
- ["PreviewDone",this]
- );
+ if (this.mjRunning) {
+ this.mjPending = true;
+ MathJax.Hub.Queue(["CreatePreview",this]);
+ } else {
+ this.buffer.innerHTML = this.oldtext = text;
+ this.mjRunning = true;
+ MathJax.Hub.Queue(
+ ["Typeset",MathJax.Hub,this.buffer],
+ ["PreviewDone",this]
+ );
+ }
},
//
@@ -83,7 +89,7 @@ var Preview = {
// and swap the buffers to show the results.
//
PreviewDone: function () {
- this.mjRunning = false;
+ this.mjRunning = this.mjPending = false;
this.SwapBuffers();
}