Хотя приведенный выше код html () заставляет IE быстрее выводить диалог, в моем случае это был запрос ajax, который я делал после создания диалога, что вызывало медлительность в IE. Это конкретное веб-приложение должно было отображать диалоговое окно ожидания после нажатия кнопки сохранения.
Использование setTimeout позволяет запросу ajax происходить вне диалогового рендеринга. Вот основной код, который я использовал:
function request(requestURL, sendData, asyncRequest) {
return jQuery.ajax(
{
url: requestURL,
type: 'POST',
datatype: 'json',
data: sendData,
contentType: 'application/json; charset=utf-8',
async: asyncRequest,
success: function (data, result) {
if (!result)
alert('Failure to retrieve the related lookup data: ' + requestURL);
}
}).responseText;
}
function modifyProperties(postData) {
var d;
// create wait dialog
jQuery("#wait").dialog({
maxWidth: 125,
maxHeight: 75,
minWidth: 125,
minHeight: 75,
modal: true,
resizable: false
});
// ie fix to ensure dialog is rendered prior to ajax request
setTimeout(function () {
// make an ajax request after 500ms
d = request('/mywebservice', postData, false);
jQuery("#wait").dialog("close");
var responseObject = JSON.parse(d);
}, 500);
return true;
}
modifyProperties();