Причина, по которой вы видите это, заключается в том, что IFrame блокирует элемент, особенно в IE. IFrames - самый дорогой элемент для создания в браузере, и он также будет блокировать выполнение JavaScript при его создании. Также есть правило блокировки ресурсов относительно IFrame. Если у вас есть CSS-файлы на вашей странице, IFrame не будет загружаться до тех пор, пока браузер (IE) или Firefox не получит ответ на каждый CSS-файл, все ресурсы IFrame будут заблокированы до получения ответа на все ресурсы на главной странице .
В качестве примера, у меня был стандартный элемент управления вращением, который отображал запущенную змею всякий раз, когда я выполняю AJAX-вызов на сервер (чтобы дать пользователю некоторую обратную связь о том, что что-то происходит). Я также должен был создать элемент IFrame на уровне тела, чтобы наложить все раскрывающиеся элементы на странице для IE6 / 7, прокачавшей ошибку. В какой-то момент я заметил, что мои вызовы веб-службы в IE примерно в два раза медленнее, чем в FF. После некоторого расследования я понял, что создание элемента IFrame блокирует все в браузере, включая код, который получает ответ от сервера.
Не думаю, что есть способ обойти это, если не использовать IFrames ...