htmx 4.0 sestā beta versija iznāca 23. jūlijā. Bibliotēka vairs nesūta pieprasījumus ar XMLHttpRequest. Tos kārto pārlūka fetch() saskarne, kas atbildi ļauj lasīt kā straumi. HTML fragmenti nonāk lapā pa daļām jau straumēšanas laikā. Šo pāreju atgriezt nevar ne ar konfigurācijas karogu, ne ar paplašinājumu.
Numuru 3 htmx pārlaida ar nodomu. Kā raksta byteiota, bibliotēkas autors Carson Gross bija publiski apsolījis, ka 3.0 versijas nebūs nekad, jo 2.0 esot pabeigta un pietiekama. Lai solījumu nelauztu, komanda pārkāpa pāri uzreiz uz 4.0. Minificēts un ar gzip saspiests fails sver 14 KB. React tajā pašā mērā sver 47 KB, taču npm nedēļas lejupielādēs starpība ir pretējā virzienā: React aptuveni 96 miljoni pret htmx 94 tūkstošiem.
Pāreja uz fetch() atvēra ceļu lietām, kas ar XMLHttpRequest nebija izdarāmas. Sestā beta pievienoja paplašinājumu hx-multipart atbildēm ar multipart/mixed un multipart/parallel tipu, kur katrai daļai var būt savas HX- galvenes. Tajā pašā laidienā parādījās atbalsts nestandarta pieprasījumu metodēm, piemēram, query. Paplašinājumiem tagad pieejams arī HCON objekts.
mantošana tagad jāraksta ar roku
htmx 2 versijā bērnu elementi automātiski pārņēma vecāka atribūtus. Uzliekot hx-confirm uz ārējā <div>, apstiprinājuma logs parādījās katrai pogai iekšpusē. htmx 4 tā vairs nedara. Mantošana jāatzīmē katram atribūtam atsevišķi ar modifikatoru :inherited.
Vecais kods <div hx-confirm="Vai tiešām?"> jāpārraksta uz <div hx-confirm:inherited="Vai tiešām?">. Kas negrib pārstaigāt visas veidnes, veco uzvedību atgriež ar htmx.config.implicitInheritance = true. Atribūti hx-disinherit un hx-inherit izņemti pavisam, jo tiem vairs nav ko izslēgt.
kļūdu atbildes nonāk lapā
htmx 2 versija 4xx un 5xx atbildes pēc noklusējuma lapā neievietoja. htmx 4 ievieto gandrīz visas.
htmx 4 ievieto lapā visas HTTP atbildes, izņemot 204 un 304. Ja serveris atgriež HTML ar 422 vai 500 statusu, šis HTML nonāk mērķa elementā. Avots: htmx 4 migrācijas dokumentācija.
Kam servera kļūdu lapas nav paredzētas rādīšanai lietotājam, veco filtru atjauno iestatījums htmx.config.noSwap = [204, 304, '4xx', '5xx']. Migrācijas pamācība uzskaita vairāk nekā divdesmit šādu izmaiņu.
vēsture bez localStorage, taimauts 60 sekundes
htmx vairs neglabā lapu momentuzņēmumus pārlūka localStorage. Nospiežot atpakaļ taustiņu, bibliotēka vienkārši pieprasa lapu no servera vēlreiz. Atribūts hx-history tāpēc izņemts. Beta6 pievienoja ritjoslas pozīcijas atjaunošanu caur Navigation API ar atsevišķu risinājumu Firefox pārlūkam.
Pārējie mainītie noklusējumi:
defaultTimeouttagad ir 60000 milisekundes. htmx 2 pieprasījumus negrieza nekad. Veco uzvedību atgriežhtmx.config.defaultTimeout = 0.hx-deletevairs neņem līdzi apkārtējās formas laukus. Ja tie vajadzīgi, jāpieliekhx-include="closest form".- Ārpusjoslas apmaiņa (out of band) notiek pēc galvenā satura, nevis pirms tā.
- Modifikators
queueuzhx-triggerizņemts. Rindu tagad pārvalda tikaihx-sync.
pārsauktie atribūti un notikumi
Divi pārsaukumi jāveic noteiktā secībā, citādi kods sadursies pats ar sevi. Vispirms hx-disable kļūst par hx-ignore. Tikai pēc tam hx-disabled-elt kļūst par hx-disable. Atribūts hx-vars aizstāts ar hx-vals un js: prefiksu. Atribūta hx-ext vairs nav: paplašinājumu skripti jāiekļauj lapā tieši. Izņemti arī hx-params, hx-prompt un hx-request.
Notikumu nosaukumi pārkārtoti pēc shēmas htmx:posms:darbība. htmx:beforeRequest tagad ir htmx:before:request, htmx:afterSwap ir htmx:after:swap. Četri agrākie kļūdu notikumi htmx:sendError, htmx:swapError, htmx:targetError un htmx:timeout saplūduši vienā htmx:error. Sestā beta pārsauca vēl vienu: htmx:swap:finally kļuva par htmx:finally:swap.
Veidnes un JavaScript failus var izskriet cauri automātiskam pārbaudītājam, kas atrod vecās vietas:
npx htmx.org@4.0.0-beta6 upgrade-check -- ./projekta/sakne
Drupal 12 pāreja jau izturējusi testus
Drupal kodols piegādā htmx savā ajax sistēmā, tāpēc šīs izmaiņas tur nav teorētiskas. Uzdevums #3555916 atvērts 2025. gada 4. novembrī un atzīmēts kā 12.0.0 beta bloķētājs. Darbs prasīja pārrakstīt integrācijas JavaScript, Htmx rūpnīcas klasi un HtmxRequestInfo īpašību. 26. jūlija komentārs ziņo, ka visi testi iet cauri. Drupal palika pie data-hx- pieraksta un tīro hx- variantu neieviesa. Papildus radīti trīs jauni atribūti hx-action, hx-method un hx-config. Atsevišķā uzdevumā #3607711 seko novecojušajām metodēm, kuras no kodola izņems vēlāk.
Stabilā 4.0 versija vēl nav publicēta. Jaunākais laidiens GitHub ir v4.0.0-beta6, kuru Drupal uzdevumā jau sauc par ceturto laidiena kandidātu. htmx 2 atbalsts saglabāsies bez termiņa. Pakāpeniskai pārejai domāts paplašinājums htmx-2-compat, kas atgriež netiešo mantošanu, vecos notikumu nosaukumus un veco kļūdu apstrādi.
Reklāmas nodaļa tikmēr strādā savu darbu. htmx veikalā par 35,93 Kanādas dolāriem pārdod Game Boy kasetni ar nosaukumu “htmx 4: the game”: četri līmeņi, kuros jāsavāc gurķīši un jāizvairās no slapstika, bet pēc Vorena uzvarēšanas atslēdzoties htmx 4.0 pirmkodam. Veikala apraksts to sauc par pirmo JavaScript bibliotēku, kas iznākusi tikai uz Game Boy platformas.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.