Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

135
Vistas
Problema de tiempo de espera de ASP.net MVC con Button Control

Tengo una aplicación mvc asp.net simple con algunos controles de desarrollo. La pantalla principal tiene un botón que toma la fecha de la pantalla y realiza el procesamiento final. VISTA:

 @Html.DevExpress().Button(settings => { settings.Name = "LoadData"; settings.Text = "Load Data"; settings.ToolTip = "Imports data from Holding API"; settings.ClientSideEvents.Click = "OnClick"; settings.UseSubmitBehavior = false; }).GetHtml()

 function OnClick(s, e) { positionDate = ReportingPositionDate.GetDate().toDateString(); $.ajax({ type: "POST", //url: "/ImportData/DataFileUpload", url: "@Url.Action("DataFileUpload", "ImportData")", data: JSON.stringify({ positionDate: positionDate }), dataType: "text", contentType: "application/json; charset=utf-8", beforeSend: function () { lpImport.Show(); }, success: function (msg) { ImportDataGridView.PerformCallback(); ImportSuccessMessage.SetVisible(true); ImportSuccessMessage.SetText(msg); lpImport.Hide(); }, Error: function (xhr) { alert(xhr) ImportDataGridView.PerformCallback(); } }); } }

Controlador:

 [HttpPost] public ActionResult DataFileUpload(string positionDate) { // Reset validation error collection ImportDataValidationErrors = new List<ImportFileRecord>(); string[] errs; try { ReturnVal ="Some Long Running Process" return Content(ReturnVal); } catch (Exception ex) { throw ex; } }

El proceso tarda unos 50 minutos (o más) en ejecutarse (esperado). El método del controlador DataFileUpload realiza todas las acciones correctamente cuando se trata de volver a Ver, simplemente cuelga. Supongo que mi pantalla se ha agotado y no acepta ninguna respuesta del controlador. Cuando ejecuto el mismo proceso con un conjunto de datos más pequeño, vea obtener valor del controlador. ¿Alguna idea de lo que podría estar yendo mal aquí? ¿Algún problema con la configuración de mis botones? Agradezco toda ayuda.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El valor de tiempo de espera predeterminado de Jquery Ajax es 0. Esto significa que no hay tiempo de espera en ajax. Si el navegador tiene algún tiempo de espera, es muy posible que lo haga.

Solo cuando se especifica una opción de tiempo de espera, jQuery incluso llama a setTimeout().

También hay otro desafío. Hay un tiempo de espera del navegador para ajax (XMLHttpRequest), es diferente para cada navegador, especialmente para IE. Supongo que son 30 minutos más o menos. Técnicamente, puede configurar el tiempo de timeout : 10000000 es entre 2,30 y 3 horas.

Me enfrenté a este problema antes. Puedes resolver con la barra de progreso. Con la barra de progreso puede mantener actualizada su vista.

Para una simple solicitud de ajax que puede usar.

 function uploadFile(){ myApp.showProgressDialog; //show dialog var file=document.getElementById('fileName').files[0]; var formData = new FormData(); formData.append("file_name", file); ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", ProgressBarHandler, false); ajax.addEventListener("load", OnCompleteHandler, false); ajax.open("POST", "/to/action"); ajax.send(formData); } function ProgressBarHandler(event){ var percent = (event.loaded / event.total) * 100; $('.bar').width(percent); // its coming from css } function OnCompleteHandler(){ myApp.hidePleaseWait(); //hide dialog $('.bar').width(100); }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda