Pusa marc web que transfereix la lògica frontal de JavaScript al costat del servidor

El framework web Pusa s'ha publicat amb la implementació d'un concepte que transfereix la lògica front-end, executada al navegador mitjançant JavaScript, a la part posterior: la gestió del navegador i els elements DOM, així com la lògica de negoci es realitzen en el back-end. El codi JavaScript executat a la part del navegador es substitueix per una capa universal que crida als controladors situats a la part posterior. No cal desenvolupar amb JavaScript per al front end. La implementació de referència de Pusa està escrita en PHP i té llicència sota la GPLv3. A més de PHP, la tecnologia es pot implementar en qualsevol altre llenguatge, inclosos JavaScript/Node.js, Java, Python, Go i Ruby.

Pusa defineix un protocol d'intercanvi basat en un conjunt minimalista d'ordres. Quan es carrega la pàgina, el navegador carrega el contingut DOM subjacent i el nucli de JavaScript de Pusa-Front. Pusa-Front envia esdeveniments del navegador (com ara clic, desenfocament, focus i premsa de tecles) i paràmetres de sol·licitud (l'element que va provocar l'esdeveniment, els seus atributs, URL, etc.) al gestor del servidor Pusa-Back mitjançant sol·licituds Ajax. A partir de les dades rebudes, Pusa-Back determina el controlador, executa la càrrega útil i genera un conjunt d'ordres de resposta. Després d'haver rebut la resposta a la sol·licitud, Pusa-Front executa ordres, canviant el contingut del DOM i l'entorn del navegador.

L'estat de la interfície es genera però no està controlat pel backend, la qual cosa fa que el desenvolupament de Pusa sigui semblant al codi d'una targeta de vídeo o Canvas, on el resultat de l'execució no està controlat pel desenvolupador. Per crear aplicacions interactives basades en Canvas i onmousemove, és possible descarregar i utilitzar scripts JavaScript addicionals al costat del client. Entre els inconvenients del mètode, també hi ha una transferència d'una part de la càrrega del frontend al backend i un augment de la freqüència d'intercanvi de dades amb el servidor.

Entre els avantatges es troben: eliminació de la necessitat de la participació de desenvolupadors de JavaScript front-end, codi de client estable i compacte (11kb), inaccessibilitat del codi principal des de la interfície, no necessitat de serialització REST i eines com gRPC, eliminant el problemes de coordinació de l'encaminament de sol·licituds entre el front-end i el back-end.

Font: opennet.ru

Afegeix comentari