1

我有一个 WebView 每隔几分之一秒就会更新它的 jqMath 方程。时不时地(当方程的字体很大时更常见)方程会在几分之一秒内显示分隔符($$, $, [\, (\)。这通常发生在快速设备上。这是我的代码:

 String funcText = "4+5+6+8";
 js = "<div><head>" + "<link rel='stylesheet' " +
      "href='file:///android_asset/mathscribe/jqmath-0.4.3.css'>" + "<script>" +
      "src='file:///android_asset/mathscribe/jquery-1.4.3.min.js'></script>" + "<script" +
      " src='file:///android_asset/mathscribe/jqmath-etc-0.4.3.min.js'></script>" +
      "</head><body>" + "\\[" + funcText + "\\]</body></divl>";
 webView.loadDataWithBaseURL("", js, "text/html", "UTF-8", "");

jqMath 将正确呈现此函数:

4+5+6+8

但是,它很少会在几分之一秒内将其与定界块一起显示:

[\4+5+6+8\]

即使它只出现了几分之一秒,它也会导致文本抖动并看起来有问题。

我不知道是什么可能导致这种情况。任何帮助将不胜感激。

4

1 回答 1

1

jqMath 在加载文档后调用 M.parseMath(document.body) 将 jqMath 字符串转换为格式化的数学。转换需要少量但非零的时间。如果需要,您可以采取措施隐藏 web 视图或将其部分移动到屏幕外,例如通过临时将定位元素的 cssleft属性设置为 -10000,但基本上当大多数网页加载时,它们需要一些时间才能看起来正确. 一般来说,每隔一秒重新加载 html 似乎不是一个好主意。最好在需要时更改或重新加载数学,正如我所说,如果您想要理想的结果,请在屏幕外重新格式化。这是任何具有非平凡渲染或图形的交互式页面或应用程序中的常用技术。

如果您想自己在页面的一部分上调用 M.parseMath 而不是重新加载整个 web 视图,请参阅Jqmath - 在页面加载后应用

于 2016-01-26T19:59:47.433 回答