首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何提高安卓WebView中JS可拖动菜单的性能

如何提高安卓WebView中JS可拖动菜单的性能
EN

Stack Overflow用户
提问于 2012-12-30 01:46:23
回答 5查看 1.6K关注 0票数 16

我们在安卓上的WebView中显示了一个web应用程序,并且我们在较旧的安卓平板电脑上存在性能问题,我们确实需要解决这些问题

  • 我们正在使用iScroll-lite进行javascript拖动
  • 我们将硬件加速设置为true,将渲染优先级设置为高,并且WebView在80ms间隔内仅允许通过一次移动触摸事件

我们还能做些什么吗?

有没有比iScroll-lite更快的选择呢?

我们不知道到底是什么让它变得如此缓慢。例如,它在1 GHz,512MB内存的索尼Erricson手机上运行流畅,但在高通1 GHz,512RAM,Android 4.0的平板电脑上运行得很慢,实际上你必须等待任何结果。我在Android版本和屏幕分辨率上看到的唯一区别。

EN

回答 5

Stack Overflow用户

发布于 2013-01-01 21:58:40

它可能终究不是Javascript。Android WebViews往往会出现意想不到的性能问题。

尝试停用所有不必要的CSS,看看性能是否有所提高。如果是这样,您可以迭代地重新添加CSS样式以定位罪魁祸首。

并且不要使用任何形式的动画GIF。我们的经验是,这(奇怪的是)会极大地拖累性能。

票数 2
EN

Stack Overflow用户

发布于 2013-01-08 10:28:57

我的建议是你自己写拖拽。这并不难。代码的关键部分如下所示:

代码语言:javascript
复制
var yourDomElement = document.getElementById("demoDrag");
yourDomElement.addEventListener("touchstart", function (e) {
    e.preventDefault();
    //todo
});
yourDomElement.addEventListener("touchmove", function (e) {
    //todo: 
});
yourDomElement.addEventListener("touchend", function (e) {
    //todo
});

你可以找到许多示例代码here (例如/assets/www/scripts/novas/framwork/nova.Carousel.js,和scroller.js)。您应该阅读示例代码来学习如何编写自己的“拖动”。

如果您仍然不知道,您可以联系our team来完成您的任务。我们制作了性能非常好的phonegap应用程序。

票数 2
EN

Stack Overflow用户

发布于 2013-01-08 11:14:37

如果使用div并将overflow设置为auto,然后应用此修复程序,以便可以滚动元素,那该怎么办?

http://chris-barr.com/index.php/entry/scrolling_a_overflowauto_element_on_a_touch_screen_device/

简短摘录:

代码语言:javascript
复制
function touchScroll(id){
    var el=document.getElementById(id);
    var scrollStartPos=0;

    document.getElementById(id).addEventListener("touchstart", function(event) {
        scrollStartPos=this.scrollTop+event.touches[0].pageY;
        event.preventDefault();
    },false);

    document.getElementById(id).addEventListener("touchmove", function(event) {
        this.scrollTop=scrollStartPos-event.touches[0].pageY;
        event.preventDefault();
    },false);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14084318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档