Ich habe diesen Code einige Ordner Informationen aus einer MySQL-DB anfordernden:Kann die Zeitüberschreitung bei jQuery.post() überprüft werden?
function gotoDir(pmcat_id, pcat_id){
$('#slideshowContainer').html('<img class="loader" src="/javascript/ajax-loader.gif">');
$.post("/publish/includes/content.includes/functions.slideshow.php",
{ updateSlideshowDir: 1, pmcat_id: pmcat_id, pcat_id: pcat_id },
function(data){
$('#pageSlideshow').html(data.content);
}, "json"
);
}
Manchmal ist die Post-Anforderung mal aus wegen der schlechten Internetverbindung. Ist es möglich, eine Zeitüberschreitungsprüfung für $ .post() durchzuführen? Beispiel: Wenn $ .post() mehr als X ms verwendet, laden Sie die Anfrage neu.
UPDATE: Sieht aus wie ich eine Lösung gefunden:
function gotoDir(pmcat_id, pcat_id){
$('#slideshowContainer').html('<img class="loader" src="/javascript/ajax-loader.gif">');
$.ajax({
type:"post",
url:"/publish/includes/content.includes/functions.slideshow.php",
data: { updateSlideshowDir: 1, pmcat_id: pmcat_id, pcat_id: pcat_id },
dataType: "json",
success:function(data) {
if (data == null){
alert('ajax failed. reloading...');
gotoDir(pmcat_id, pcat_id);
} else {
$('#pageSlideshow').html(data.content);
}
}
});
}
Ist das ein OK Weg, dies zu tun? : S
Nein, es ist nicht Okay, denn wenn die Datenvariable gleich null ist, bedeutet das nicht, dass die Anfrage abgelaufen ist, was zu einer unendlichen Anfrage führen würde, wenn functions.slideshow.php tatsächlich null zurückgibt! – ifaour