Я сделал библиотеку на основе jQuery, чтобы справиться с этим, которая должна быть жизнеспособным решением в некоторых ситуациях (того же происхождения) и успешно запускать индикаторы занятости в некоторых браузерах настольных компьютеров (по крайней мере, в современных Chrome и Firefox, и, как ни странно, также в IE8, но вероятно, не IE9, и определенно не Safari или большинство мобильных браузеров).
Шумный JSON
По сути, я использую подход iframe для запуска индикаторов «занят», но без искусственного нажатия на отдельную «остановленную» страницу: вместо этого он просто использует пользовательский $ .ajaxTransport для прохождения через скрытый iframe и последующего анализа JSON ответ обратно. В результате браузер отображает индикаторы загрузки, которые напрямую связаны с вашим запросом: никаких дополнительных http-запросов. Вы можете просто установить плагин, а затем решить, какие ajax-запросы должны быть шумными, а какие нет, просто изменив параметр dataType.
В качестве дополнительного примечания, тот факт, что загрузка контента в iframes НЕ вызывает какой-либо обратной связи пользовательского интерфейса в Safari и IE9, просто bizarre .