В некоторых случаях Ajax вызывает кешированные данные, когда вас просят удалить, и даже если вы не подключены к сети, он получает их из кэша, поэтому он считает, что все в порядке.Кеш в jQuery Ajax по умолчанию имеет значение true.
Поэтому попробуйте использовать cache: false
$.ajax({
type: "POST",
url: "SynchroniseCustomers.asmx/synchroniseCustomers",
data: JSON.stringify(customerObj),
contentType: "application/json; charset=utf-8",
dataType: "json",
cache:false,
error: function (xhr, status) {
// If not successfull
},
success: function (msg) {
deleteCustomer(customer.id);
}
});
Для вызова изображения лучше использовать Interval, а не создаватьпамять снова и снова.
<img id="PingerImg" width="1" height="1" src="/spacer.gif?" onload="synchronise" onerror="fail" />
<script language="javascript" type="text/javascript">
var myImg = document.getElementById("PingerImg");
if (myImg){
window.setInterval(function(){myImg.src = myImg.src.replace(/\?.*$/, '?' + Math.random());}, 60000);
}
</script>
Обновление
Другое решение - действительно получить код подтверждения с сервера, на котором вы удалили пользователя, и только если вы читаете этот код, продолжайтеудалить пользователя на пульте.
success: function (msg) {
if(msg.confirm = true)
{
deleteCustomer(customer.id);
}
else
{
alert('Fail to delete user.');
}
}