I'm working on a hobby project consisting of a multi-player web browser game.
It is my first and I have just stumbled into the latency issue.
I am trying to make user control as smooth as possible and latency is getting in the way. 
I reckon that average latencies might be around 80-200ms and that for virtually-smooth control a command-action delay needs to be less than 100ms.
I have a few questions:

Would it be good practice to try and send user actions 100ms before required? e.g. User keeps the '->' arrow key pressed, I submit the right arrow key action 100ms before action needs to be submitted to a server.
How do developees keep consistency/synchonise between what is happening on the online server and on the client?
Any tips or recommendations?


Thanks guys, help would be very much appreciated. :)
One important thing is to load resources when needed. That is, in most 3D 'moving'-games, load resources as approaching the objects needing them.
How should I deal with latency in game development?