2010-06-12 3 views
4

J'ai trouvé un comportement bizarre lié au défilement et au rendu et au javascript.Javascript et le rendu s'arrête et reste sur pause dans le navigateur android

Comment y arriver:

sur une page Web qui est assez long pour faire défiler sur. Commencez à défiler assez rapidement (lancez la page). puis relâchez le contact. Maintenant, alors que la page défile encore à cause de l'élan. Appuyez sur l'écran pour arrêter le défilement.

Cela fait entrer le navigateur dans un mode bizarre.

Sur le nexus on se comporte comme ceci: La mise à jour de ce qui est affiché sur l'écran s'arrête, vous pouvez toujours cliquer sur les liens et aller là où ils sont censés mais ce qui est affiché sur l'écran reste le même.

Si vous faites ensuite défiler un peu l'écran, la mise à jour de l'écran redémarre et ce que vous avez vu s'afficher tout le temps est affiché.

sur tous les téléphones avec HTC Sense, j'ai essayé (Hero, Desire, Legend) cela se produit:

La mise à jour de l'écran est arrêté comme sur le Nexus One, mais aussi l'exécution de tout javascript est arrêté. Si vous cliquez sur un lien qui vous amène à une autre page, les choses redeviennent normales.

La façon dont je l'ai testé ce fut, je créé une page comme ceci:

http://pastebin.ca/1881620

La fonction changeColor simplement changé la couleur de fond du « conteneur » à quelques couleurs différentes. Donc, avant l'erreur, ce qui se passe est que lorsque vous cliquez sur un lien, la couleur change.

après l'erreur cela se produit:

Nexus One: lorsque vous cliquez sur les liens ne se passe rien (sauf est présentée comme « lien orange boîte coin arrondi sélectionné chose » si le lien est cliqué). Ensuite, quand vous faites défiler abit. Vous pouvez voir que la couleur a changé (et autant de fois que le nombre de fois où j'ai cliqué sur le lien).

Sense: Les liens me prennent à Google.com

Quelqu'un at-il remarqué ce problème? Y a-t-il un moyen de contourner le problème?

Merci.

+0

J'ai le même problème. J'ai un background qui est changé via JS sur une minuterie. Vous pouvez zoomer, mais une fois que vous faites défiler le tout, il cesse d'exécuter. – Jeff

+1

Avez-vous essayé d'attacher un javascript-debugger et de voir si certaines erreurs JS sont lancées? – Mannaz

+2

Le lien du script affiché est mort ... pourquoi y a-t-il une prime sur quelque chose que nous ne pouvons jamais répondre? – Incognito

Répondre

0

Vous pouvez essayer d'utiliser un plugin qui manipule le processus de défilement du navigateur, tel que iScroll4.

iScroll4 laissez-nous faire des trucs assez cool (comme les en-têtes fixes/bas de page), mais il y a eu des problèmes de performance dans certains des anciens/crappier téléphones Android ...

Je ne peux pas garantir que Si vous êtes intéressé par les autres fonctionnalités d'iScroll, ou si vous avez atteint une impasse avec votre bug, et que c'est un spectacle, ça pourrait être une solution de dernier recours. -stopper pour votre application.

Questions connexes