Я использую Long Polling как механизм push в моей системе.Он отлично работает в Firefox и Chrome, но в IE8 поведение довольно странное: он загружается нормально 5 раз (т.е. я могу обновить (F5) страницу 5 раз, HTML-файл загружен и все сценарии работают правильно)после чего IE8 отказывается выполнять и сетевое соединение (я проверял с Fiddler2) и просто бесконечно показывает значок «загрузки».Единственное лекарство на этом этапе - закрыть и открыть сам браузер.
Я использую JQuery и php.
Вот мой код инициализации:
setTimeout( function() // called from $(function(){}), jquery page ready event
{
start_polling();
},1000);
function start_polling()
{
$.ajax(
{
url: "/push",
// must avoid cache because sometimes user is logged in and sometimes not
data:
{
"anticache":Math.random()
},
type: "post",
timeout: 30000, // half a minute before each restart long polling
success: function(data)
{
var dataObj = eval("("+data+")");
{
create_notif("withIcon",
{
title: dataObj.title,
text: dataObj.text,
icon: "/img/"+dataObj.type+".png"
},
{
click: function(e, instance)
{
instance.close();
}
});
}
start_polling();
},// end success of ajax load
error: function(x,t,m)
{
if(t==="timeout") {
//alert("got timeout");
start_polling();
} else {
//alert(t);
}
//start_polling();
}
}) // end ajax
} // start polling