Spingendo le modifiche a una pagina Web aperta

2

Ho un'app di gestione del magazzino che ho scritto che gestisce il batching di ordini per il prelievo in batch, la scansione di articoli per l'imballaggio e la precisione. Parte di questa app è un Dash o un pannello di controllo a cui lavorano i diversi responsabili del magazzino. Indica chi sta selezionando, imballando, chi è disponibile, quanti ordini sono disponibili per essere dosati e un BUNCH di altri dettagli e controlli. In questo momento ho una chiamata Ajax che controlla un timestamp che viene eseguito ogni 30 secondi o giù di lì per vedere se la pagina deve essere aggiornata (una modifica apportata su un'altra workstation manager).

Un manager fa qualcosa che dovrebbe essere mostrato su tutte le altre workstation che stanno visualizzando il "trattino". Forse hanno messo in fila alcuni ordini e i raccoglitori che erano disponibili non sono più disponibili. In questo momento, quando viene apportata la modifica, aggiorno un timestamp salvato in un database. Nella pagina html il timestamp che si trovava nel db all'ultimo caricamento della pagina viene salvato in un div nascosto. Il javascript accetta quel timestamp e controlla il database a intervalli se è diverso dagli aggiornamenti della pagina.

È un po 'più complicato di come le sezioni della pagina non vengano modificate, ma la descrizione riassume il processo.

Funziona ma non mi piace. Richiede un hit del database da ogni workstation ogni 30 secondi. Sembra troppo complesso. Sto cercando alcuni pensieri su come spingere un cambiamento mentre si verifica e minimizzare o eliminare alcune delle interazioni del database.

Pensieri?

    
posta Ominus 03.08.2011 - 18:59
fonte

1 risposta

1

So che il tuo suona in quanto non è la soluzione migliore, ma sono d'accordo che è il più semplice che si possa ottenere con le attuali risorse tecnologiche disponibili.

Uno degli approcci per rendere più efficiente e meno pesante il server è l'uso della cache. La tua cache potrebbe essere aggiornata direttamente quando il tuo gestore apporta modifiche AND nel database, in modo che il resto dei client ottenga sempre (o la maggior parte delle volte) la loro risposta dalla cache.

Qualcuno ha menzionato l'uso di socket Web e questa è un'altra grande idea.

Inoltre, renderei l'applicazione molto ricca nell'interfaccia utente, quindi tutte queste modifiche significano solo una semplice query al back-end e tutta la computazione di dati / interfaccia utente / schermo viene eseguita sul computer client dell'utente.

    
risposta data 09.08.2011 - 01:39
fonte

Leggi altre domande sui tag