- Migrācija no XMLHttpRequest uz vietējo fetch() API, lai nodrošinātu labāku veiktspēju un straumēšanas iespējas.
- Pāreja uz skaidru atribūtu mantošanu un standartizētu notikumu nosaukšanas konvenciju.
- Morf mijmaiņu un hx-partial taga ieviešana sarežģītiem DOM atjauninājumiem.
- Vēstures pārvaldības pārskatīšana, aizstājot lokālos momentuzņēmumus ar reāliem servera pieprasījumiem.
Ja esat kādu laiku sekojis līdzi tīmekļa izstrādes aprindām, jūs droši vien zināt, ka htmx būtībā ir burvju triks jūsu HTML. Tas ļauj veikt lietas, kurām parasti nepieciešams milzīgs JavaScript ietvars, piemēram, atjaunināt lapu bez pilnīgas atkārtotas ielādes, vienkārši pievienojot tagiem dažus atribūtus. htmx 4 izlaišana ir liels notikums, jo tā ne tikai pievieno dažas papildu funkcijas, bet arī būtībā pārveido dzinēju, lai jūsu lietotnes darbotos ātrāk un būtu daudz uzticamākas.
Galvenā filozofija paliek nemainīga: saglabāt loģiku serverī un izmantot hipertekstu kā lietojumprogrammas stāvokļa dzinēju (HATEOAS) . Tā vietā, lai mainītu JSON turp un atpakaļ, htmx 4 pieprasa serverim HTML fragmentus un ievieto tos tieši DOM. Tas ir svaiga gaisa malks ikvienam, kurš ir noguris no moderno front-end rīku sarežģītības, koncentrējoties uz uzvedības lokalitāti , lai jūs faktiski varētu saprast, ko jūsu kods dara, vienkārši aplūkojot HTML.
Lielā atnešanās

Visnozīmīgākā iekšējā izmaiņa ir tā, ka htmx beidzot ir atteicies no XMLHttpRequest par labu vietējai fetch() API . Lai gan šī varētu šķist garlaicīga, detalizēta detaļa, patiesībā tā maina spēles noteikumus. Fetch izmantošana padara bibliotēku vienkāršāku un paver durvis uzlabotai HTML straumēšanai . Tomēr tas nozīmē, ka XHR specifiskie notikumi vairs nav pieejami, un jūs pamanīsiet, ka pieprasījumu taimauti tagad pēc noklusējuma ir 60 sekundes, nevis bezgalīgi.
Mantojuma ieraduma laušana
Viens no lielākajiem šķēršļiem, pārejot no 2. uz 4. versiju, ir atribūtu nodošana bērnelementiem. Agrāk mantošana bija netieša — ja div elementā ievietojāt apstiprinājuma dialoglodziņu, katra tā poga saņēma šo dialoglodziņu. Tagad mantošanai jābūt tiešai, pievienojot atribūtam modifikatoru :inherited . Piemēram, izmantojot hx-confirm:inherited, tiek norādīts htmx, ka šai darbībai ir jāplūst pa DOM koku. Tas novērš kaitinošo "darbības attālināti" sajūtu un ievērojami atvieglo lietotāja interfeisa atkļūdošanu.
Gudrākas maiņas un vairāku mērķu mērķēšana

Satura maiņa ir tā, kur htmx patiešām izceļas, un 4. versijā ir ieviestas Morph maiņas (innerMorph un outerMorph). Tā vietā, lai vienkārši izvilktu lapas daļu un ievietotu jaunu HTML, morphing izmanto idiomorph algoritmu, lai apvienotu izmaiņas. Tas ir glābiņš, lai saglabātu ievades fokusu vai turpinātu video atskaņošanu, kamēr pārējais saturs tiek atjaunināts. Turklāt jaunā <hx-partial> birka ļauj vienai servera atbildei atjaunināt vairākas dažādas lapas daļas, sniedzot jums lielāku kontroli nekā vecie ārpusjoslas (OOB) maiņas.
Kļūdu apstrāde un vēsture
Iepriekšējās versijās htmx bieži ignorēja 400 vai 500 kļūdu atbildes. Vairs ne. htmx 4 pēc noklusējuma apmaina kļūdu atbildes , kas ir lieliski piemēroti servera puses validācijas kļūdu rādīšanai. Lai to pārvaldītu, varat izmantot hx-status atribūtu , lai novirzītu konkrētus kodus (piemēram, 422) uz īpašu kļūdu div. Attiecībā uz vēsturi bibliotēka ir pārtraukusi DOM momentuzņēmumu veidošanu localStorage. Tagad, kad lietotājs nospiež pogu Atpakaļ, htmx vienkārši atkārtoti ielādē lapu no servera , nodrošinot, ka stāvoklis vienmēr ir svaigs un nav novecojis iepriekšējās sesijas spoks.
Notikumi, paplašinājumi un skriptēšana

Notikumu sistēma ir pilnībā attīrīta, lai sekotu htmx:phase:action modelim. Šī konsekvence ievērojami atvieglo pievienošanos pieprasījuma dzīves ciklam. Paplašinājumu jomā tagad ir pirmklasīgs atbalsts SSE (Server-Sent Events), WebSockets un daudzdaļīgām/jauktām atbildēm , padarot reāllaika informācijas paneļu izveidi ļoti vienkāršu. Tiem, kam nepieciešama neliela klienta puses reaģētspēja, hx-live piedāvā uz DOM balstītu skriptēšanas risinājumu, kas šķiet kā Alpine.js un jQuery sajaukums, ļaujot manipulēt ar elementiem ar vienkāršu q() selektoru.
Instalēšanas un jaunināšanas ceļš
Ja sākat jaunu projektu, vienkārši iegūstiet jaunāko 4. versiju, izmantojot CDN vai NPM. Esošajām lietotnēm komanda ir nodrošinājusi komandrindas jaunināšanas rīku (izmantojot npx), kas skenē jūsu veidnes, meklējot novecojušus atribūtus un vecus notikumu nosaukumus. Ja neesat gatavs pilnīgai pārejai, paplašinājums htmx-2-compat var īslaicīgi atjaunot veco darbību. Ir vērts atzīmēt, ka 2. versija joprojām tiek atbalstīta un līdz 2027. gada sākumam NPM saglabās “jaunākās” atzīmi, lai novērstu nejaušu miljoniem vietņu, kas izmanto neversificētas CDN saites, darbības pārtraukumu.
Drošība un labākā prakse
Tā kā htmx ļauj tieši ievadīt HTML, lietotāja satura atsoļa izmantošana nav apspriežama, lai novērstu XSS uzbrukumus. Atribūts hx-ignore šeit ir lielisks rīks; tas norāda htmx pilnībā izlaist jebkuru atribūtu apstrādi noteiktā konteinerā, kas ir ideāli piemērots neapstrādāta lietotāja ģenerēta satura drošai atveidošanai. Augstas drošības vidēs hx-csp paplašinājums palīdz integrēties ar stingrām satura drošības politikām, pārvaldot nonces un ierobežojot pieprasījumu nosūtīšanas vietas.
Šī htmx evolūcija pārveido bibliotēku no viedas utilītas par stabilu pamatu ilgtermiņa tīmekļa pakalpojumiem. Ieviešot fetch API, precizējot atribūtu mantošanas veidu un ieviešot sarežģītas morfēšanas un daļējas atjaunināšanas iespējas, tā novērš berzi starp serveri un pārlūkprogrammu. Neatkarīgi no tā, vai veidojat vienkāršu CRUD lietotni vai sarežģītu reāllaika saskarni, vienkāršotas notikumu sistēmas un jaudīgu straumēšanas paplašinājumu kombinācija atvieglo dinamiskas pieredzes izveidi, neatstājot HTML ērtības.