I only use single serving server salt hashing for authorization and identification. It requires two requests but it's secure for login and most importantly it's simple enough to implement in javascript.
client --- server
salt? -> -> generate salt
hash(pass+salt) <- <- salt
-"- -> -> verify hash
done <- <- auth