2012-09-01 4 views
2

Après avoir cliqué sur un bouton avec la méthode "click_no_wait", il y a un délai de presque une seconde avant que quelque chose ne se produise ... Pourquoi est-ce le cas?Pourquoi "click_no_wait" est plus lent que "click"?

Voici un exemple (de retard évident entre la fenêtre-éclair jaune et pop-up de bouton):

require 'watir' 
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert" 
b.frame(:name, "view").button(:text, "Show alert box").click_no_wait 

Si je remplace « click_no_wait » avec juste « clic », alors il n'y a pas de retard après avoir cliqué sur un bouton (La fenêtre popup apparaît instantanément). Mais "clic" ne peut pas être utilisé ici parce que le script se bloque ...

Y at-il une solution pour ce délai? (Pas vraiment un gros problème, juste demander ...)

Répondre

2

Il lance un processus séparé. Le côté positif est qu'il empêche l'accrochage parce que le processus principal peut se mettre immédiatement en marche. L'inconvénient est que la mise en place d'un processus prend du temps en soi. C'est un équilibrage trouvé dans n'importe quel langage utilisant des processus séparés ou des threads séparés - une réactivité accrue et des performances accrues dans certains cas, mais avec un surcoût en soi.

Vous pourriez trouver http://itreallymatters.net/post/1366392123/debugging-and-improving-watirs-click-no-wait-method d'intérêt.

+0

Ok merci ... Réponse très rapide :) – apk

Questions connexes