2012-12-29 3 views
5

Attualmente sto lavorando su un programma di conversione file, una volta che il file è stato caricato convertirà il file in diversi formati di file (ppt, pdf) questo di solito richiede molto tempo a seconda delle dimensioni del file. Poiché la conversione dei file avviene sul back-end, voglio che l'utente veda l'avanzamento della conversione dei file (qualcosa come barra di avanzamento, ad es. "File 52% convertito"), è comunque possibile visualizzare all'utente il progresso corrente di la conversione dei file (che sta accadendo nel back-end)? Durante la conversione dei file sono solo in grado di mostrare lo stato (in numeri (forniti dall'API che sto usando))Lato server - Barra di avanzamento

Non ho idea da dove cominciare qualcuno può fornire qualche intuizione o approccio?

+0

http://www.sitepoint.com/html5-javascript-file-upload-progress-bar/ ** in JS semplici puri ** ok, è per le richieste di upload, ma XHR sono il vostro punto di interesse. Altrimenti puoi mostrare la barra di caricamento e, una volta terminato il caricamento, è sufficiente animare una barra di caricamento come "Conversione del file ... attendere" –

+0

Esiste un buon tutorial su http://tpeczek.blogspot.in/2010/07/ reporting-server-side-operation.html –

+0

@roXon Non sto parlando della barra di avanzamento del caricamento del file, quello che voglio dire è che c'è un certo processo in esecuzione sul backend (conversione del file) Voglio mostrare il suo progresso all'utente – user962206

risposta

6

Se si utilizza Struts2, dare un'occhiata a Execute and Wait Interceptor. Crea un nuovo thread con il tuo compito che verrà eseguito in background mentre puoi mostrare alcuni progressi all'utente.

Nel file struts.xml aggiungere execAndWait intercettatore per l'azione a esecuzione prolungata e definire due risultati wait e success.

<action name="longRunningAction" class="..."> 
    <interceptor-ref name="defaultStack"/> 
    <interceptor-ref name="execAndWait"/> 
    <result name="wait">longRunningAction-wait.jsp</result> 
    <result name="success">longRunningAction-success.jsp</result> 
</action> 

È ancora necessario eseguire il polling di questa azione nel JSP tramite AJAX o semplice aggiornamento della pagina.

+0

è veramente necessario" defaultStack "? – user962206

+0

Hmm .. SÌ. Perché lo chiedi? –

+0

perché così? se rimuovo il defaultStack perché non dovrebbe funzionare? – user962206

1

Stai dicendo: During file conversion I am only able to show the status(in numbers(provided by the API I am using))

Che cosa è questo numero? La percentuale di quanti file viene convertita? Se lo è, è sufficiente importare la libreria jQuery UI e aggiungere .progressbar()

+0

non è in percentuale, va da 1 a 1000, 1000 è valore per il completo – user962206

+0

Ma aumenta in modo esponenziale o è un numero casuale che presenta una fase di conversione? –

+0

aumenta in modo esponenziale non un numero casuale – user962206

0

soluzione semplice: Usa Struts2-Jquery tag

E definire l'indicatore sul tag presentare un'immagine GIF

esempio con.

`<form action="..."> 
    <s:file ..../> 
    <sj:submit indicator="imgId"> 
</form> 

<img id="imgId" src="images/indicator.gif" alt="Loading..."  
    style="display:none"/> 
    `