How often does a browser need to perform a DNS lookup for then same site?

Solution 1:

DNS is (meant to be) cached until the TTL (Time to Live) on the DNS record expires. The TTL starts counting down from when the DNS record is retrieved.

So, if you have a TTL of 5 minutes, then if it's been more than 5 minutes since the DNS record has been retrieved, then it will be re-retrieved.

However - this is only how well behaved DNS services work. There are some not-so-well behaved DNS services that will cache a record for a lot longer than the TTL, which has caused a lot of problems for webmasters in the past (there's lots of questions on this site about it).

Solution 2:

browser may perform DNS lookups on every request but all they are cached, on windows - with DNS Client service, on Mac - with mDNSResponder daemon. Anyway even if you don't have any local DNS cache, the DNS server you use will cache a record. The record is being resolved again from the website domain's DNS servers as soon as it's TTL expires.