Nan JavaScript ki sou paj mobil medyàn nan Web Almanac 2024, 168 kilooktè te premye pati e 375 kilooktè te twazyèm pati.1 Plis pase mwatye script ki sou yon paj òdinè, an pwa, te ekri pa yon lòt moun pase mèt sit la. Chapit Almanac la sou twazyèm pati te jwenn yo sou 92 pousan paj, e script se te kalite demann twazyèm pati ki pi komen.2 Script yon rezo piblisite, sa yon piblikatè ajoute pou pote piblisite li yo, se youn nan demann sa yo. Sa script sa a koute paj la nan moman chajman depann mwens de sa li fè pase de fason yo ekri eleman ki chaje l la.
Navigatè a kanpe pou yon eleman script ki pa gen okenn atribi
Dapre HTML Living Standard, yon navigatè gen twa fason pou trete yon script ekstèn, e yo diferan sèlman pa yon atribi sou eleman an.3 Premye a, san ni youn ni lòt atribi, se sa ki pa defo: script la "chache e evalye imedyatman, li bloke analiz la jiskaske toude fini." Dezyèm lan, defer, chache fichye a an paralèl ak analiz la e li evalye l "lè paj la fin analize." Ak twazyèm lan, async, yo chache fichye a an paralèl tou men yo evalye l "depi li disponib (petèt anvan analiz la fini)." Se sèlman premye mòd la ki kenbe analizè a pandan fichye a ap travèse rezo a, e anyen apre eleman an pa parèt jiskaske fichye a rive.
Odit Lighthouse Google la fè distenksyon an tounen yon tès yon piblikatè ka fè sou pwòp paj li. Li make yon eleman script nan head dokiman an ki pa gen ni defer ni async.4 Rapò a "bay lis tout URL ki bloke premye afichaj paj ou." Gwosè pa fè pati definisyon sa a, ni objektif non plis. Yon script analiz, yon script piblisite, ak yon chajè font trete menm jan si yo chita nan head la san atribi.
Script twazyèm pati se ka gid chajman an te ekri pou li a
Gid sou web.dev la pale dirèk sou script ki soti deyò sit la. Script senkwon, li di, "ralanti konstriksyon DOM ak afichaj," DOM nan se modèl travay navigatè a fè ak dokiman an.5 Règ ki swiv la se "toujou chaje script twazyèm pati yo yon fason asenkwon sof si script la dwe mache anvan paj la ka parèt." Async bon pou yon script ki dwe mache bonè nan pwosesis chajman an; defer bon pou "resous ki mwens kritik," egzanp li se yon lektè videyo anba liy pliyaj la. Yon script piblisite ki travay apre tèks la fin sou ekran an tonbe anba tit mwens kritik la selon tès sa a.
Pratik la gaye, men pa sou chak paj. Web Almanac 2024 la te jwenn async sou 87 pousan paj, kont 76 pousan an 2022, e defer sou 47 pousan, kont 42 pousan.1 Chif sa yo dekri paj yo an jeneral. Yon paj ki gen pwòp script li yo an diferè ka toujou gen yon eleman ki bloke yon twazyèm pati te bay. Yon ti kòd enstalasyon, sof si piblikatè a modifye l, chaje jan rezo a te ekri l.
Yon script ki tann DOM nan pa gen okenn premye afichaj pou l bloke
Navigatè a make moman analizè a fin konstwi DOM nan ak yon evènman. Dapre MDN, DOMContentLoaded "deklanche lè dokiman HTML la fin analize nèt, e tout script ki an diferè" fin telechaje e egzekite.6 Evènman an pa tann imaj, sou-ankadreman, oswa script async. Kidonk yon script ki kòmanse travay li nan moman sa a kòmanse apre tèks la egziste, san li pa tann dènye imaj la.
Kòd entegre AdBubbles la, adbubbles.js, chaje apre DOM paj la pare. Se yon sèl fichye estatik, yo sèvi atravè kach Cloudflare e ekri an JavaScript senp san okenn depandans. Done pou chak sit li li yo se tou yon fichye estatik, yo rejenere lè yon kanpay chanje e yo mete l nan kach sou rezo distribisyon an. Kidonk yon vizyalizasyon paj pa koute sèvè piblisite a anyen, e sèl demann dinamik la se yon ti siyal. Kòd entegre a eskane sèlman zòn piblikatè a konfigire, e li sote tit, lyen, kòd, tèks preformate, kontwòl fòmilè, navigasyon, antèt, pye paj, ak nenpòt sa ki make data-noads. Nòt enstalasyon yo dekri paramèt zòn nan.
Louvri yon kont piblikatè pa koute anyen, ni ajoute kòd entegre a sou yon sit. Yon piblikatè ki ajoute yon sit ka mande yon eskanaj ki montre ki mo ladan l ki ka vann kounye a. Yo chwazi zòn nan, kantite maksimòm bil pou chak paj, ak kategori anonsè ki ekskli yo nan menm kont lan.
Siyal yo voye lè yon lektè ale a se lòt mwatye pri a
Moman yon lektè ale se lòt chans yon script genyen pou ralanti l. Kòd analiz ki rapòte lè paj la ap fèmen te konn konte sou teknik tankou "yon apèl XMLHttpRequest senkwon ki bloke."7 MDN anrejistre ke tout metòd sa yo "bloke fèmti dokiman an, sa ki ralanti navigasyon pou ale nan pwochen paj la." Metòd sendBeacon la ranplase yo. Li voye yon ti demann HTTP POST yon fason asenkwon. Navigatè a transmèt done yo "lè ajan itilizatè a gen okazyon pou l fè sa, san li pa ralanti fèmti oswa pwochen navigasyon an."
Kòd entegre a rapòte ak sendBeacon, e li voye twa kalite siyal. Yo voye yon vizyalizasyon pou chak chajman paj. Yo voye yon ouvèti lè yon bil vizib pandan yon segonn, e yo voye yon klik lè yon lektè swiv lyen anndan yon bil. Pa gen lòt bagay ki kite paj la.
AdBubbles pa mete okenn cookie, li pa sere okenn idantifyan, e li pa ranmase okenn done pèsonèl sou lektè yo. Yo li peyi lektè a nan yon antèt demann Cloudflare olye de yon adrès IP yo sere. Mete mo ki sou paj yon piblikatè ansanm ak anonsè ki achte yo se tout sa AdBubbles fè. AdBubbles pa gen mo pou l di sou ki moun ki wè yon bil, li pa janm swiv yon lektè de yon paj oswa yon sit a yon lòt, e li pa pwomèt okenn rezilta. Pozisyon sou konfidansyalite a pibliye an antye.
Navigatè yo konte kounye a sa yon piblisite koute e yo aji sou total la
Heavy Ad Intervention Chrome lan montre sa yon fabrikan navigatè konsidere kòm twòp. Yon piblisite konte kòm lou sèlman "si itilizatè a pa t gen entèraksyon ak li (pa egzanp, li pa t tape oswa klike sou li)."8 Anplis sa, nenpòt nan twa limit ase. Premye a se plis pase 4 megaoktè bandpasant rezo. Dezyèm lan se plis pase 15 segonn tan sou fil prensipal la nan nenpòt fennèt 30 segonn, e twazyèm lan se plis pase 60 segonn an total.
Lè entèvansyon an deklanche, kontni ankadreman piblisite a "ranplase pa yon mesaj Ad removed," e mekanis lan aji sou iframe ki make kòm piblisite.8 Mezi a se okte ak tan sou fil prensipal la; kontni piblisite a pa jwe okenn wòl. Yon bil parèt anndan yon Shadow DOM nan pwòp dokiman piblikatè a olye de nan yon iframe, kidonk mekanis sa a vize yon lòt kalite piblisite. Sa kòd entegre a ajoute sou yon paj bay, an okte ak an tan sou fil prensipal la, se yon bagay pwòp mezi paj sa a ap montre.
Verifikasyon yon piblikatè ka fè sou pwòp paj li pa bezwen anyen anplis yon navigatè. Sous paj la bay lis chak eleman script nan head la, e chak swa gen async oswa defer swa pa genyen okenn. Seksyon Opportunities Lighthouse la bay lis sa ki pa genyen okenn yo kòm URL ki bloke premye afichaj la.4 Ti kòd yon rezo ki sou lis sa a ap bloke paj la selon definisyon estanda a, kèlkeswa sa dokimantasyon rezo a di sou pwa li. Si yon script piblisite antre nan lis sa a se atribi ki sou eleman li a ki deside l, e atribi a ekri nan ti kòd la anvan okenn piblikatè kole l.