Questa parte della mia web-app dovrebbe essere implementata sul lato server o sul lato client?

1

Voglio scrivere un'applicazione che monitora alcuni URL (come un paio di centinaia) di tutti i rami della scuola. Monitorando, intendiamo che invia richieste a tali URL a intervalli regolari (l'intervallo per ogni URL è definito dall'utente) e, sulla base della risposta a tali richieste, apporta alcune modifiche alla pagina web. Questo processo dura per sempre.

Ora c'erano due modi per implementarlo:

Approccio 1. carica la pagina web nel browser. Prima prendi i dati url dal server. Quindi raggruppa tutti gli URL che hanno lo stesso valore di intervallo. Ciò si traduce in alcuni gruppi di URL (ad esempio 10 gruppi). Quindi per ciascun gruppo, a intervalli regolari il cui valore è definito dal valore del campo intervallo, invio una richiesta AJAX al mio server locale, che esegue tutta l'elaborazione e restituisce una risposta al browser. Sulla base della risposta apporto modifiche al DOM.

In questo caso, la prima richiesta AJAX per tutti i gruppi dovrebbe essere attivata (quasi) alla stessa ora, e quindi dovrebbe essere attivata agli intervalli definiti. Questo succede IN PARALLELO, per sempre.

L'ho implementato utilizzando le funzioni timer di Javascript come setInterval () e setTimeout () ecc., che sono asincrone ed eseguite a intervalli regolari; così come AJAX che è asincrono.

Approccio 2. Il metodo di cui sopra sembra essere un overhead per browser e concettualmente, leggere i dati sul lato client (browser) dal server e quindi inviarlo al server per l'analisi e quindi ottenere una risposta di analisi sul lato client e quindi sulla base della risposta, apportando modifiche all'aspetto della pagina web, NON SOLO A DESTRA.

Piuttosto, dovrei tenere l'analisi a intervalli regolari sul server, quindi inserire i risultati dell'analisi nel database e quindi dal browser inviare periodicamente richieste al mio server per leggere i risultati dell'analisi dal database, e sulla base della risposta di questa richiesta periodica, apportare modifiche nel DOM della pagina web.

Per questo, ho provato a utilizzare PHP, ma PHP non supporta il multi-threading e le soluzioni come opensource Asynctask diventano troppo complicate (impossibile abilitare l'estensione pcntl, nessun supporto per pcntl nell'ambiente windows); Ho considerato Java, in quanto supporta il multi-threading e la creazione di un thread separato per ogni gruppo sarà semplice.

Quindi quale approccio è corretto o migliore? Che linguaggio di programmazione dovrei usare - Plain Javascript per l'approccio 1, o PHP o Java per l'approccio 2.

    
posta Shy 17.08.2018 - 08:57
fonte

1 risposta

2

La risposta a questo è abbastanza chiaro da implementare sul lato server, almeno se si desidera continuare il processo di monitoraggio anche se qualcuno chiude il browser - e direi che è un requisito per qualsiasi soluzione "professionale".

La lingua che scegli dal lato server è per lo più irrilevante: è una questione su cosa tu (e il tuo team?) siete più a vostro agio. Java / C # funzionerebbe, il nodo funzionerebbe, Python funzionerebbe, molte altre lingue funzionerebbero pure.

    
risposta data 17.08.2018 - 09:43
fonte

Leggi altre domande sui tag