Piszę aplikację internetową AJAX, która używa Komety/Long Polling, aby strona internetowa była aktualna, a zauważyłem w Chrome, że strona traktuje ją tak, jakby zawsze była ładowana (ikona bo zakładka się kręci).Wskaźnik ładowania Chrome wciąż się kręci podczas XMLHttpRequest
Pomyślałem, że to było normalne w Google Chrome + Ajax, ponieważ nawet Google Wave miało takie zachowanie.
Dziś zauważyłem, że Google Wave nie utrzymuje już ikony ładowania, czy ktoś wie, jak to naprawili?
Oto mój ajax kod wywoławczy
var xmlHttpReq = false;
// Mozilla/Safari
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject) {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open('GET', myURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpReq.onreadystatechange = function() {
if (xmlHttpReq.readyState == 4) {
updatePage(xmlHttpReq.responseText);
}
}
xmlHttpReq.send(null);
Ale czy odpytywanie co x sekund nie zwiększy obciążenia serwera? Sądzę, że teraz może się to zmienić w inny sposób (Long Polling vs Poling co x sekund). Ale nie jestem pewien, czy jestem przekonany, że przeszli z Long Polling. –
@teehoo: Kiedyś przeczytałem, że długie pollingowanie wymaga dużych zasobów, ponieważ wiele połączeń musi pozostać otwartych w tym samym czasie, do czego HTTP nie jest przeznaczony. Ale nie jestem ekspertem od serwerów, więc proszę, popraw mnie, jeśli się mylę. –
Domyślam się, że utrzymywanie otwartych połączeń zajmuje więcej pamięci, ale otwieranie i zamykanie połączeń wymaga więcej CPU + przepustowości? Dzięki za rozpatrzenie tego problemu, sprawdzę, czy działa, gdy wrócę do domu. –