Do I have to buy new one every 2-3 months to swim fog free? Is there a way to protect the anti-fog feature for long times?
There are a few low tech methods:
Toothpaste (Smear a bit then rinse free, be cautious as some people are sensitive to toothpaste around the eyes)
Anti Fog spray
I've had good results with the aquasphere line, but eventually all glasses fog over. I usually just spit on the insides, smear around, then rinse them out and slap them back on. During practice, I generally just smear pool water over the inside with my thumbs. After a while, fogginess just doesn't bother you any more.
"Fogging" on the inside of the googles is caused by temperature differences between the inside and outside of the lens. This is the same reason your car window fogs up when you turn on the heat in the winter.
The simplest solution is to dunk your googles in the pool before you put them on. I've done this for over 8 years as a swimmer and I've never had issues with fog, no matter how old the goggles were.
I used to rub them when I was a kid but then my coach showed me the dunking technique and it changed my life forever... :)
My experience: put your goggles into the water, salivate by your tongue and put immediately on.
EDIT: I'd never use any anti-fog chemicals now. Why? When the protection is partially off and goggles start slowly fogging you will be forced to think about licking chemicals in case you would like to use my tip. So don't use any chemicals, just salivate it. I'd like to have something chemicals free on my eyes :)