У меня есть интервал, который запускает вызов AJAX, чтобы проверить, есть ли обновление для страницы (я полагаю, что это похоже на механизм, используемый Facebook или StackExchange для проверки новых уведомлений). Проблема заключается в том, что этот вызов изменяет курсор на курсор «прогресс» или «занят» (визуальная проблема) и отключает возможность выбора ссылок (функциональная проблема).Как избавиться от курсора «progress»?
Я полагаю, что обе проблемы связаны. Как можно избавиться от этого эффекта или, по крайней мере, минимизировать последствия?
Некоторый код:
setInterval(function() {
try {
var mid = $($("ul#alert-messages li.regular")[0]).attr('ref');
call_ajax('/load_alerts', {num:0, id:mid}, function (data) {
if (data.ok) {
for (var i=0; i<data.result.length; i++) {
// ....
}
// ...
}
}, function() {}, // Do not show any error for this!!
false); // Do not change cursor!
} catch (e) {}
}, 15000);
function call_ajax(url, data, fnSuccess, fnError) {
$.ajax({
'url': url,
'type': 'POST',
'data': data,
'dataType': "json",
'success' : function(data) {
if (fnSuccess) {
fnSuccess(data);
} else {
if (typeof data.msg != 'undefined') {
topBar(data.msg, typeof data.ok != 'undefined' && data.ok? 'message' : 'error');
}
}
},
error : function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
if (fnError) {
fnError(STR_ERROR_AJAX + textStatus);
} else {
topBar(STR_ERROR_AJAX + textStatus, 'error');
}
}
});
}
не могли бы вы разместить свой код? – dm03514
Это делает это во всех браузерах? Можете ли вы воспроизвести проблему с минимальным примером на http://jsfiddle.net? –
@ Xeon06: Я испытываю это в FF и Chrome (Linux). Не тестировались в других системах. Не могу дать образец js, потому что мне понадобится сценарий на стороне сервера, чтобы ответить на AJAX. – Ivan