2

我正在使用一个自定义列表视图,其中包含一些组件,如图像视图、文本视图和 Web 视图。我正在使用列表视图,因为数据不是固定的,并且在每次单击项目后都会更改。因此,由于我使用的是列表视图的动态数据,我为此使用了 BaseAdapter。

在 WebView 中,我正在显示一些数学表达式。为此,我需要本地 Javascript:一切正常,但在 WebView 中加载 Javascript 大约需要 4 到 5 秒。之后,它开始渲染,所以显示输出的总时间是 5 到 6 秒。

我想减少这个时间。有什么方法可以在 WebView 中预加载 Javascript?

GetView()方法每次都会创建一个 WebView 和其他组件的新实例,因此每次它都在加载 Javascript。

有什么方法可以让我使用预加载的 Javascript Webview?

4

2 回答 2

0

没有初始延迟的解决方案,但是可以通过缓存由 js 动态创建的 html 页面来避免滚动列表视图时加载页面的后续延迟。

您可以将每个结果(html 结果页面)与唯一的 id(根据要呈现的结果生成)相关联,并将动态创建的 html 页面缓存在 hashmap 或 lru 缓存中(完全创建的页面可以在 onPageFinished 回调后访问)针对此 id。当列表向上或向下滚动时,无需再次通过js动态创建页面,您可以获取已创建的缓存html页面(现在为静态页面)并加载静态页面。这减少了加载页面的延迟并节省了电池

于 2013-10-29T06:56:10.980 回答
0

我认为你应该通过一个库 JAVA / Android 来避免使用 webview 从而提高性能。这是一个解决数学表达式问题的主题:MathML and Java

于 2012-12-14T15:38:32.233 回答