jqMath: странные артефакты при обновлении текста

У меня есть 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\]

Несмотря на то, что он появляется только на долю секунды, он заставляет текст дрожать и выглядеть искаженным.

Я понятия не имею, что может быть причиной этого. Любая помощь будет оценена.


person daedsidog    schedule 26.01.2016    source источник


Ответы (1)


jqMath вызывает M.parseMath(document.body) после загрузки документа, чтобы преобразовать строки jqMath в форматированную математику. Преобразование занимает небольшое, но ненулевое время. Вы можете предпринять шаги, чтобы скрыть веб-просмотр или переместить его части за пределы экрана, если хотите, например, временно установив для свойства css left позиционированного элемента значение -10000, но в основном, когда загружается большинство веб-страниц, им требуется некоторое время, прежде чем они будут выглядеть правильно. Перезагрузка html каждую долю секунды не кажется хорошей идеей. Было бы лучше просто изменить или перезагрузить математику, когда вам нужно, и, как я говорю, переформатировать за кадром, если вы хотите идеальных результатов. Это распространенный метод на любой интерактивной странице или в приложении с нетривиальным рендерингом или графикой.

Если вы хотите вызвать M.parseMath на части страницы самостоятельно, а не перезагружать весь веб-просмотр, см. Jqmath — применить после загрузки страницы

person Dave Barton    schedule 26.01.2016
comment
У меня нет опыта работы с JS или HTML, и, честно говоря, я использовал код для настройки WebView из других вопросов. Можете ли вы сказать мне, как именно его применить после загрузки страницы? - person daedsidog; 26.01.2016
comment
Выше я имел в виду, как только переформатировать математику без перезагрузки WebView! - person daedsidog; 27.01.2016