平板电脑上应用程序的响应时间测量:HTML和原生Android/iOS之间的延迟差异



我正在研究编写一个本地平板电脑应用程序(Android)的HTML版本,研究机构使用该版本来测试用户响应时间。也就是说:屏幕显示一段设定的时间,然后测量用户选择响应所花费的时间。

有帮助的是知道这是否像通过本地代码一样容易通过HTML实现——我需要确切地知道从向用户显示屏幕到他们触摸响应之间的时间。由于HTML呈现是在浏览器的命令下进行的,有没有办法非常准确地知道屏幕何时真正呈现给用户,以及计时器何时应该启动?我的想法是,最好将div状态从"隐藏"设置为"可见",或者使用Greensock这样的动画库,但我觉得这可能是"当你只有一把锤子时,每个问题都是钉子"——也就是说,这些是我知道的工具,我不知道这些是否是我应该使用的。

我试图弄清楚这是否可行——我没有做过任何原生代码平板电脑的开发,已经做了相当多的HTML,如果我要做这项工作,需要说服他们更换。感谢您提供的任何信息。

也许您可以使用javascript&JQuery在HTML页面中记录加载的确切时间?

$(document).ready(function(){ //notice that $(document).ready is JQuery
    // Your code here
});

我猜您在WebView中通过javascript调用原生Android方法,但如果不是这样,您可以通过首先注入页面加载时要调用的包含对象的方法来实现:

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

然后,上面通知Java对象的JQuery代码将是:

$(document).ready(function(){
    Android.documentReady(); // method to call in Java Object
});

注意:这是非常实验性的,我不知道将JQuery加载到你的WebApp中是否是个好主意,但由于JQuery在的任何地方都使用,这应该不是问题。无论如何,当document/html页面完全加载时,会调用$(document).ready(function…)-在标准javascript中执行类似的"监听器"是不推荐的,但也是可能的。(如果您想跳过JQuery,请参阅更多信息;https://stackoverflow.com/a/7053197/3911640)

有关使用JavaScript调用本机Android对象的更多信息:http://developer.android.com/guide/webapps/webview.html

编辑:你也可以用HTML5:来做到这一点

<body onload="Android.documentReady()">

注意:不是我的专业领域,也没有经过测试,但实际上是可能的。我建议你研究哪种方式最快、最可靠,但理论上,当所有内容(包括图像等)都加载并呈现给用户时,两者都应该调用。

HTML5函数的W3C文档:http://www.w3schools.com/jsref/dom_obj_event.asp

最新更新