Πλαίσιο ιστού Pusa που μεταφέρει τη λογική του front-end JavaScript στην πλευρά του διακομιστή

Το πλαίσιο web Pusa έχει δημοσιευτεί με την εφαρμογή μιας ιδέας που μεταφέρει τη λογική του front-end, που εκτελείται στο πρόγραμμα περιήγησης χρησιμοποιώντας JavaScript, στην πίσω πλευρά - η διαχείριση του προγράμματος περιήγησης και των στοιχείων DOM, καθώς και η επιχειρηματική λογική εκτελούνται σε το back-end. Ο κώδικας JavaScript που εκτελείται στην πλευρά του προγράμματος περιήγησης αντικαθίσταται από ένα γενικό επίπεδο που καλεί χειριστές που βρίσκονται στην πλευρά του backend. Δεν χρειάζεται να αναπτυχθεί χρησιμοποιώντας JavaScript για το μπροστινό μέρος. Η υλοποίηση αναφοράς Pusa είναι γραμμένη σε PHP και έχει άδεια χρήσης σύμφωνα με το GPLv3. Εκτός από την PHP, η τεχνολογία μπορεί να εφαρμοστεί σε οποιαδήποτε άλλη γλώσσα, συμπεριλαμβανομένων των JavaScript/Node.js, Java, Python, Go και Ruby.

Το Pusa ορίζει ένα πρωτόκολλο ανταλλαγής που βασίζεται σε ένα μινιμαλιστικό σύνολο εντολών. Όταν φορτώνεται η σελίδα, το πρόγραμμα περιήγησης φορτώνει το υποκείμενο περιεχόμενο DOM και τον πυρήνα JavaScript του Pusa-Front. Το Pusa-Front στέλνει συμβάντα προγράμματος περιήγησης (όπως κλικ, θόλωση, εστίαση και πάτημα πλήκτρων) και παραμέτρους αιτημάτων (το στοιχείο που προκάλεσε το συμβάν, τα χαρακτηριστικά του, τη διεύθυνση URL, κ.λπ.) στον χειριστή διακομιστή Pusa-Back χρησιμοποιώντας αιτήματα Ajax. Με βάση τα δεδομένα που λαμβάνονται, το Pusa-Back καθορίζει τον ελεγκτή, εκτελεί το ωφέλιμο φορτίο και δημιουργεί ένα σύνολο εντολών απόκρισης. Έχοντας λάβει την απάντηση του αιτήματος, το Pusa-Front εκτελεί εντολές, αλλάζοντας τα περιεχόμενα του DOM και του περιβάλλοντος του προγράμματος περιήγησης.

Η κατάσταση του frontend δημιουργείται αλλά δεν ελέγχεται από το backend, γεγονός που κάνει την ανάπτυξη για το Pusa παρόμοια με τον κώδικα για μια κάρτα βίντεο ή Canvas, όπου το αποτέλεσμα της εκτέλεσης δεν ελέγχεται από τον προγραμματιστή. Για να δημιουργήσετε διαδραστικές εφαρμογές με βάση το Canvas και το onmousemove, είναι δυνατή η λήψη και η χρήση πρόσθετων σεναρίων JavaScript στην πλευρά του πελάτη. Μεταξύ των μειονεκτημάτων της μεθόδου, υπάρχει επίσης η μεταφορά μέρους του φορτίου από το frontend στο backend και η αύξηση της συχνότητας ανταλλαγής δεδομένων με τον διακομιστή.

Μεταξύ των πλεονεκτημάτων είναι: εξάλειψη της ανάγκης για συμμετοχή προγραμματιστών front-end JavaScript, σταθερός και συμπαγής κώδικας πελάτη (11 kb), αδυναμία πρόσβασης στον κύριο κώδικα από το front-end, μη ανάγκη για σειριοποίηση REST και εργαλεία όπως το gRPC, εξάλειψη του προβλήματα συντονισμού της δρομολόγησης αιτημάτων μεταξύ του front-end και του back-end.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο