Domanda

In un'applicazione Web ASP.NET, ho un popup modale costruito con una finestra RAD Telerik. In quel popup c'è un pulsante che deve fare qualche azione nel suo "codice di codice" e quindi reindirizzare l'applicazione a un'altra pagina.

Per il reindirizzamento utilizzo il comando javascript 'top.document.location.href = mypage' (inviato al browser dal codice-essere con un scriptManager.registerClientScriptBlock (...)).

Questo risolve il mio problema ma non è molto bello. Quando viene premuto il pulsante, questo innesca il post-back. Nel browser il popup è coperto da un radloadingpanel che disapprova quando il post-back è finito. Quindi durante alcuni secondi, non succede nulla nell'applicazione ed è solo dopo un po 'di tempo che il browser carica la nuova pagina.

Il fatto che non accada nulla durante qualche secondo non è eccezionale poiché un utente non può sapere cosa sta facendo l'applicazione.

Cosa posso fare ? C'è un modo migliore per fare il reindirizzamento? (Sono molto nuovo nella programmazione JavaScript ...).

È stato utile?

Soluzione

Invece di chiamare semplicemente 'top.document.location.href = mypage', puoi chiamare una funzione che visualizza un overlay (ad esempio, mostra un radajaxloadingpanel sul corpo della pagina principale) e quindi impostare il nuovo URL. Vedere http://www.telerik.com/help/aspnet-ajax/ajxshowhideloadingpanel.html Per informazioni su come mostrare i pannelli di caricamento con JavaScript.

Penso che il ritardo dopo aver impostato la posizione.href sia normale: il browser/server impiega un po 'di tempo per recuperare la nuova pagina HTML in modo che la vecchia pagina non possa andare via all'istante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top