Я создал веб-сервис WCF. Я называю это usinq jQuery 1.7.1
try {
$.ajax({
type: "GET",
url: '/_vti_bin/PROJ/WCF.svc/GetDetails',
contentType: "application/json; charset=utf-8",
data: myid,
success: function (msg) {
wcfServiceGetSucceeded(msg);
},
error: wcfServiceGetFailed
});
} catch (e) {
alert('error invoking service.get()' + e);
}
Это работает во всех браузерах, когда размер результатов невелик. Когда размер результата больше, IE8 падает. Chrome и IE9 работают нормально. Тело возвращенного json составляет 51 856 (не уверен, что за единицы в скрипаче). IE вылетает полностью. Висит и ничего не отображается. Процесс IE нужно убить.
Я предполагаю, что это связано с одной из следующих вещей:
- Существует ограничение на количество данных, которые могут быть обработаны IE8
- Существует проблема с
$.ajax()
в IE8
- В IE8 существует проблема тайм-аута
Кто-нибудь знает, что я могу сделать, чтобы это заработало? Единственное, о чем я могу думать, это разделить запрос и сделать несколько звонков.
Небольшой пример возвращаемого контента можно увидеть ниже:
"<ul>
<li><a href='#tabs-1'>Member<\/a><\/li><li><a href='#tabs-2'>Scheme<\/a><\/li>
<li><a href='#tabs-3'>Scheme Categories<\/a><\/li>
<li><a href='#tabs-4'>Correspondence<\/a><\/li>
<\/ul>"
Служба WCF возвращает html, а затем она добавляется на страницу с помощью .html()
.
Единственное, что может быть, если в возвращенном html-файле есть ошибки, вызывающие проблему.
Обновление
Относительно последнего пункта:
Единственное, что может быть, если в
вернул HTML, который вызывает проблему.
Используя firefox, я выбрал источник генерации для области. Запустите его через валидатор w3, и, за исключением пользовательского свойства, которое я добавил в тег tr, он хорошо работает.
Обновление
Я пытался изменить это на POST, но без радости. Аутентификация службы WCF выглядит немного странной.
Обновление
Я также могу создать проблему в IE7.