I am new to crypto.

I have a password for my user, e.g. `&&38:while:HAVE:havana:60&&`  
I want to encrypt several documents with 10 pages each with AES.  

Now when do I run my salt, KDF and init vector functions?
 
As often as possible, e.g. for every page? (This is what I do now, but it gets too slow. I store salt and initialization vector with the encrypted page.).

Or KDF once at login (so I use the same derived key for all encrypted documents) and a different salt and initialization vector for every page?