我有一个WebView,可以在每一秒钟内更新其jqMath方程式。偶尔(当方程式的字体很大时),等式会显示一小段时间的分隔字符($$
,$
,[\
,{ {1}})。这通常发生在快速设备上。这是我的代码:
(\
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", "");
然而,极少数情况下,它会用分隔块显示它,只需几分之一秒:
4+5+6+8
即使它只出现了几分之一秒,它也会导致文本抖动并且看起来有问题。
我不知道可能导致这种情况的原因。任何帮助将不胜感激。
答案 0 :(得分:1)
jqMath在加载文档后调用M.parseMath(document.body),将jqMath字符串转换为格式化数学。转换需要很少但非零的时间。如果需要,您可以采取措施隐藏webview或将其部分移出屏幕外,例如暂时将定位元素的css left
属性设置为-10000,但基本上在加载大多数网页时,它们需要一点点他们看起来正确的时间。每一秒钟重新加载html一般看起来不是一个好主意。最好只在需要时更改或重新加载数学,并且正如我所说,如果你想要理想的结果,请重新格式化屏幕外。这是任何具有重要渲染或图形的交互式页面或应用程序中的常用技术。
如果您想自己在页面的一部分上调用M.parseMath而不是重新加载整个webview,请参阅Jqmath - apply after page load