Essayez de nouveau. Ne pense pas que j'ai posé une question clairement.Problème de blocage avec AJAX à l'aide de JQuery
J'ai un gros problème. La société avec laquelle je suis en contrat m'a demandé de convertir le site pour retarder le chargement en utilisant AJAX. Pour ce faire, j'utilise les méthodes Page pour charger les contrôles. Javascript ressemble à ceci ... Fonctionne comme un champion!
$(document).ready(function() {
var clientID = '#' + '<%= BackUpPower.DivBackUpPower.ClientID %>'
if ($(clientID)) {
$.ajax({
type: "POST",
url: "Dashboard.aspx/GetBackUpControl",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 15000,
success: function(result) {
$(clientID).css({ "display": "none" });
$(clientID).removeClass('loading');
$(clientID).attr('innerHTML', result.d);
$(clientID).fadeIn("slow");
},
error: function(xhr) {
//alert("GetBackUpControl failed");
}
});
}
});
Code côté serveur ressemble à ceci ...
[WebMethod]
public static String GetBackUpControl()
{
Page page = new Page();
UserControls_BackupPowerForm ctl = (UserControls_BackupPowerForm)page.LoadControl("~/UserControls/BackupPowerForm.ascx");
ctl.ID = "BackupPower";
page.Controls.Add(ctl);
ctl.HostPage = "Dashboard";
ctl.ActiveTimeRange = TimeRange.LastMonth;
try
{
ctl.DataBindChart();
}
catch (Exception caught)
{
LoggingAdapter.LogError(caught.Message, "Error Generating Chart", caught);
return String.Empty;
}
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
Problème Je vais avoir est quand une longue rappel en cours d'exécution est en cours et l'utilisateur essaie de changer de page en cliquant sur lien hypertexte, le système attend longtemps avant de le faire. Passer à travers le code, je vois callback est corrigé avorté sur la nouvelle demande de page et le gestionnaire d'erreur JQuery appelé, mais semble toujours comme nouvelle demande de page attend la fin du rappel. Si aucun rappel n'est en cours, la nouvelle demande de page est instantanée. Quelqu'un sait ce qui se passe?
Il ya une question similaire mais pas très bien répondu ici: http://stackoverflow.com/questions/806184/jquery-ajax-post-blocking-form-submit – karim79