如何提高iPad自助服务终端网络应用程序中按钮的响应速度?

时间:2012-10-15 18:10:06

标签: ios ipad web-applications kiosk

我为今天上线的iPad 2信息亭开发了一个网络应用程序。几乎所有客户都在使用触摸屏时遇到问题。他们正在敲击按钮,应用程序没有注册触摸。

我从未想过用户与触摸屏进行交互会有太多困难。我想知道作为开发人员我能做些什么来使这个用户更友好。触摸与实际注册之间存在轻微的延迟 - 这使得用户更难以知道他们已按下按钮。

我可以肯定地说,按钮非常大 - 实际上可能比iOS指南要大(再次这是一个Web应用程序 - 它不是用Objective-C编写的,而是用PHP和jQuery编写的)。所有操作都在Web应用程序中进行 - 可以使用简单的UIWebView iOS应用程序访问,该应用程序只需连接到站点。

澄清一下,有两个问题:

  1. 触摸根本没有注册 - 客户在挫折中越来越难按
  2. 对于已注册的触摸事件,存在延迟
  3. 感谢下面评论中的一些建议,这最终促成了我link,我能够大大提高网络应用的响应能力。但我知道我的代码仍然可以改进。我的应用程序在任何主干mvc之外使用backbone.js和jquery的组合。

    以下是我更改的jquery事件示例,以防止默认的touchend行为(它最初是一个click事件)。

    $('body').on( 'touchend', '#s-id', function(event) {
        event.preventDefault();
        $('form[name=client-login]').submit();
    });
    

    骨干视图的一个示例,它最初也使用了点击事件

            var CounterView = Backbone.View.extend({
    
            el: "body",
    
            events: {
                "touchend #b-q-prev": "qPrev",
                "touchend #b-q-next": "qNext"
            },
    
            qNext: function(e){
                e.preventDefault();                 
                this.model.qIncrease();
                this.qShow();
            },
    
            qPrev: function(e){
                e.preventDefault();                         
                this.model.qDecrease();
                this.qShow();
            },...etc...
    

    实现这些技术解决了我的问题,因为应用程序基本上不关心您在最初触摸按钮后所执行的操作,一旦释放它,则认为按下了您触摸的原始按钮。这允许我的客户使用随意点击来触发事件。它也更快,解决问题2.

    我不确定我是否已正确实施此功能。现在的一个主要缺点是,当我使用非触摸设备进行测试时,没有事件注册,因为我从java脚本中删除了所有点击事件。我应该查看多个事件,而不仅仅是阻止默认触摸结束吗?基于我所做的研究,没有明确的解决方案 - 因为jquery mobile尚未实现事件吗?

0 个答案:

没有答案