Я пишу HTML5-игру, которая обновляет холст на touchstart. На моей Galaxy Note 10.1 под управлением Android 4.1.1 экран занимает некоторое время, чтобы обновить после события touchstart. Я исследовал и пришел к выводу, что экран (просто любое изменение на экране) просто требует времени для обновления после сенсорного экрана. Вот демонстрация:Задержка экрана Android585 Android
<!DOCTYPE html>
<html>
<head>
<script>
document.addEventListener(
'touchstart',
function(event) {
console.log('touchstart');
document.getElementById('asdf').value = 'asdf';
}
);
</script>
</head>
<body>
<input id="asdf" value="qwer" type="text" />
</body>
</html>
Вот некоторые из сценариев:
- нажмите на экран, не перемещайте палец, не отпуская палец
- вам нужно будет ждать около половины секунда, чтобы увидеть обновленное текстовое поле
- коснитесь экрана, переместите палец, не отпустите палец
- экран будет обновляться в тот момент, вы перемещаете ваш палец
- нажмите на экран и отпустите
- экран будет обновлен момент, когда вы отпустите палец
В во всех случаях событие touchstart запускается немедленно, просто обновление экрана задерживается. Похоже, что это связано с задержкой в 300 мс, которая вызывает событие клика, но проблема другая, это обновление экрана, которое задерживается. Я думаю, что я пробовал все очевидные вещи, например event.preventDefault
, или вернул false, установив захват в true или false. Я также искал, но не могу найти подобную проблему.
И он отлично работает на моем iPad и моем телефоне Nexus One под управлением Android 2.3, экран обновляется сразу после touchstart.
Любые идеи?
И, конечно же, вы потратили много времени на это расследование. Я сделал. –