Skip to content

Commit 78b0ad2

Browse files
authored
[Blazor] Always treat "preloads" as new elements when doing enhanced navigation (#63239)
1 parent a054e1d commit 78b0ad2

File tree

1 file changed

+9
-0
lines changed
  • src/Components/Web.JS/src/Rendering/DomMerging

1 file changed

+9
-0
lines changed

src/Components/Web.JS/src/Rendering/DomMerging/DomSync.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,11 @@ function domNodeComparer(a: Node, b: Node): UpdateCost {
308308
return UpdateCost.Infinite;
309309
}
310310

311+
// Always treat "preloads" as new elements.
312+
if (isPreloadElement(a as Element) || isPreloadElement(b as Element)) {
313+
return UpdateCost.Infinite;
314+
}
315+
311316
return UpdateCost.None;
312317
case Node.DOCUMENT_TYPE_NODE:
313318
// It's invalid to insert or delete doctype, and we have no use case for doing that. So just skip such
@@ -319,6 +324,10 @@ function domNodeComparer(a: Node, b: Node): UpdateCost {
319324
}
320325
}
321326

327+
function isPreloadElement(el: Element): boolean {
328+
return el.tagName === 'LINK' && el.attributes.getNamedItem('rel')?.value === 'preload';
329+
}
330+
322331
function upgradeComponentCommentsToLogicalRootComments(root: Node): ComponentDescriptor[] {
323332
const serverDescriptors = discoverComponents(root, 'server') as ServerComponentDescriptor[];
324333
const webAssemblyDescriptors = discoverComponents(root, 'webassembly') as WebAssemblyComponentDescriptor[];

0 commit comments

Comments
 (0)