Sadece "removeDocx" işlevi yürütüldüğünde sayfayı güncellemek istiyorum. Ama benim durumumda, zamanlayıcının zaman aşımı, "wait" işlevinin tamamlanması olarak algılanıyor. Sorun nerede ve nasıl çözebilirim?Neden .when() işlev tamamlandığında beklemez?
$(function() {
$.when(wait()).done(function() {
location.href = location.href;
});
});
function wait() {
var pm = { ISN_DOC: GetrcId(document.location.href) };
if (isNaN(pm.ISN_DOC))
setTimeout(wait, 500);
else removeDocx();
}
function removeDocx() {
var def = $.Deferred();
var url = "MinPrj/Collage.asmx/clearPattern?isn_doc=" + pm.ISN_DOC;
$.ajax({
type: 'POST',
url: rootpath + url,
contentType: 'application/json'
}).done(function (r) {
def.resolve();
}).fail(def.reject());
return def;
}
Hemen "wait()" yi çağırıyorsunuz ve dönüş değerini "$ .when" değerine iletiyorsunuz. 'Bekle' bir şey döndürmediğinden, nasıl çalışmasını bekliyorsunuz? –
'$ .ajax' için' data' argümanınız yok. İçeriğiniz olmadığında, neden bir içerik türü olan "application/json" ayarlıyorsunuz? – Quentin