js client progress