Τα Πιο Περίεργα APIs που Έφτιαξαν τον Σύγχρονο Ιστό

Τα Πιο Περίεργα APIs που Έφτιαξαν τον Σύγχρονο Ιστό

Ιούν 25, 2026 web-development browser-apis history-api frontend-development backward-compatibility single-page-applications javascript web-standards developer-experience

Ποιο είναι το πιο περίεργο Browser API που ξέρεις;

Φαντάσου ένα παιχνίδι: πες μου το πιο παράξενο Browser API που έχεις συναντήσει.

Αν γράφεις frontend, πιθανότατα σκέφτηκες αμέσως το canPlayType(). Αυτή η μέθοδος επιστρέφει τρεις τιμές: κενό string (όχι), "probably" ή "maybe". Δηλαδή μια πιθανολογική απάντηση τυλιγμένη σε ασάφεια. Ομολογουμένως, είναι χάος.

Αλλά υπάρχει ένα άλλο API που δείχνει τη δέσμευση του web να μη σπάσει ποτέ υπάρχοντα κώδικα: το History.pushState().

Όταν καλείς pushState(), περνάς τρία ορίσματα: state, title και url. Το state object είναι λογικό—επιτρέπει στην εφαρμογή σου να επαναφέρει δεδομένα όταν ο χρήστης πατάει back. Η παράμετρος URL χρησιμεύει για να αλλάζεις τη διεύθυνση στη μπάρα του browser χωρίς refresh.

Αλλά αυτή η παράμετρος title; Αγνοείται τελείως. Όλοι οι major browsers την πετάνε στα σκουπίδια.

Γιατί λοιπόν υπάρχει;

Το 2008, όταν σχεδιάστηκε αρχικά το History API, κάποιος σκέφτηκε ότι οι browsers θα έπρεπε να επιτρέπουν στις εφαρμογές να ορίζουν custom τίτλο για κάθε history entry. Η ιδέα ήταν ότι το SPA σου θα έδειχνε "Dashboard" στην εφαρμογή, ενώ στο browser history θα αποθηκευόταν "Analytics Report".

Ακουγόταν λογικό τότε. Αλλά οι browsers συνειδητοποίησαν γρήγορα ότι αυτό θα δημιουργούσε προβλήματα. Τι γίνεται αν ένας χρήστης κάνει bookmark ένα history entry και ο τίτλος δεν ταιριάζει με αυτό που βλέπει στις καρτέλες του;

Αντί να ασχοληθούν με αυτό, οι browsers απλά αγνόησαν την παράμετρο. Μέχρι τότε όμως, χιλιάδες sites είχαν ήδη φτιάξει τις εφαρμογές τους περιμένοντας τρεις παραμέτρους. Αν την αφαιρούσαν, θα έσπαγαν production sites. Αν την έκαναν optional, θα δημιουργούσαν σύγχυση με τα υπάρχοντα pushState(state, url) calls.

Οπότε το spec έκανε κάτι κομψό: μετονόμασε την παράμετρο σε unused και τεκμηρίωσε ότι δεν έχει κανένα αποτέλεσμα.

Αυτό είναι το βρόμικο μυστικό του web—δίνουμε προτεραιότητα στην backward compatibility σχεδόν σε όλα. Το web θα κάνει τα πάντα (κυριολεκτικά μερικές φορές) για να τρέχει κώδικας του 2008 στα σημερινά browsers.

Αυτή η φιλοσοφία είναι ακριβώς ο λόγος που προωθούμε τα static sites και τις δοκιμασμένες web τεχνολογίες στην NameOcean. Όταν χτίζεις κάτι που πρέπει να διαρκέσει—αρχεία media, documentation, landing pages—η σταθερότητα των βασικών web τεχνολογιών δεν είναι περιορισμός. Είναι χαρακτηριστικό.

Το ίδιο ισχύει όταν διαλέγεις domain registrar ή hosting provider. Θέλεις εταιρείες που καταλαβαίνουν το μακροπρόθεσμο παιχνίδι. Το web δεν πάει πουθενά, και οι τεχνολογίες που χτίζεις σήμερα θα πρέπει να δουλεύουν ακόμα μια δεκαετία αργότερα.

Υπάρχει ένα μάθημα εδώ, τόσο για developers όσο και για startups: μερικές φορές η "λάθος" απόφαση γίνεται μόνιμη όχι επειδή είναι σωστή, αλλά επειδή πολλά εξαρτώνται από αυτήν. Αυτό δεν είναι bug στο web—είναι feature που κρατάει εκατομμύρια sites να τρέχουν σωστά.

Την επόμενη φορά που θα συναντήσεις κάποιο περίεργο API ή deprecated parameter, θυμήσου: κάποιος, κάπου, έκανε μια κρίση πριν χρόνια, και τώρα είναι χαραγμένο στα θεμέλια του web. Σεβάσου την περίεργη συμπεριφορά. Είναι αυτή που κρατάει τα πάντα σε λειτουργία.

Read in other languages:

RU BG CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN