ASP.Net MVC 生成 DNS 预取标记

ASP.Net MVC Generate DNS Prefetch Tags

有没有办法在视图中呈现 ASP.net MVC 页面时找到所有 src="" url,然后动态生成 DNS 预取标记?

https://www.chromium.org/developers/design-documents/dns-prefetching

如果我理解正确,我可以告诉你以下内容:

选项 #1:(不是一个很好的解决方案,但会起作用。)

注意:为此尝试使用简单的 Javascript 而不是依赖 JQuery 或其他(从那时起你仍然需要 "load" .JS 文件,那就是破坏你问题的重点。

使用某种 "OwnLogic" 处理您的 src/href 或其他一些预定义的 属性 标签以定义 "base target", 但浏览器无法发起获取该图像或其他文件的请求。 示例:

<img url="" class="DNS_BaseTarget" DNS_BaseTarget="smiley.gif||myCDNPointerInfo" alt="">

然后,使用 javascript,获取使用 class DNS_BaseTarget 的所有元素的列表,然后读取 属性 值并更新 "src" 标签。 同时你可以通过javascript注入,根据你刚刚处理的信息注入所有你将要使用的'<link rel="dns-prefetch" href="https://cdn.yourTargetDomain.com">'。

我没有测试过这个概念,所以 "lag" 客户端可能会出现某种延迟(但用户可能不会注意到)。

选项#2:

View Result Execution Process(在MVC生命周期中)告诉我们方法'Render()'是最后一个被执行的。 话虽如此,您可以创建自己的自定义覆盖逻辑 示例:拦截视图渲染以在所有局部视图上添加 HTML/JS? How to intercept view rendering to add HTML/JS on all partial views?

有了这种在将其发送给用户之前尝试 "process" 最后 html 的概念,您可以以某种方式 "parse" 文件....尝试获取所有 'src/href' 然后 注入您将使用的所有“<link rel="dns-prefetch" href="https://cdn.yourTargetDomain.com">”。