Different Types Of Wait in Selenium Web Driver

Sometime our test fails due to page was not loaded with all element because of slow internet connection or may be the poor response time. So now question is how to handle this problems.? And when to use