About page: Cache our zxcvbn calls and limit the variation of the animation.

Diff is mostly whitespace.

props jorbin, azaozz.
fixes #25603.


git-svn-id: https://develop.svn.wordpress.org/trunk@25884 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Nacin 2013-10-23 19:50:30 +00:00
parent 1d33726b1a
commit ed15997210

View File

@ -2,10 +2,19 @@
var password = 'Gosh, WordPress is grand.', var password = 'Gosh, WordPress is grand.',
$input = $('#pass'), $input = $('#pass'),
shouldAnimate = true, shouldAnimate = true,
timesForAnimation = [280, 300, 305, 310, 315, 325, 330, 345, 360, 370, 380, 400, 450, 500, 600],
resultsCache = {},
indicatorString = $('#pass-strength-result').text(); indicatorString = $('#pass-strength-result').text();
function updateResult(){ function updateResult(){
var strength = wp.passwordStrength.meter($input.val(), [], $input.val()); var strength;
if ( typeof( resultsCache[ $input.val() ]) === 'undefined') {
strength = wp.passwordStrength.meter($input.val(), [], $input.val());
resultsCache[ $input.val() ] = strength;
} else {
strength = resultsCache[ $input.val() ];
}
$('#pass-strength-result').removeClass('short bad good strong'); $('#pass-strength-result').removeClass('short bad good strong');
switch ( strength ) { switch ( strength ) {
@ -34,13 +43,18 @@
if ($input.val().length < password.length){ if ($input.val().length < password.length){
$input.val( password.substr(0, $input.val().length + 1) ); $input.val( password.substr(0, $input.val().length + 1) );
updateResult(); updateResult();
// Look like real typing by changing the speed new letters are added each time
setTimeout( animate, ( timesForAnimation[ Math.floor( Math.random() * timesForAnimation.length ) ] ) );
} else { } else {
resetMeter(); resetMeter();
// When we reset, let's wait a bit longer than normal to start again
setTimeout(animate, 700);
} }
// Look like real typing by changing the speed new letters are added each time
setTimeout(animate, 220 + Math.floor(Math.random() * ( 800 - 220)) );
} }
//
function begin(){ function begin(){
// we async load zxcvbn, so we need to make sure it's loaded before starting // we async load zxcvbn, so we need to make sure it's loaded before starting
if (typeof(zxcvbn) !== 'undefined') if (typeof(zxcvbn) !== 'undefined')