ASP.Net MVC生成DNS预取标记

时间:2017-04-26 15:01:11

标签: c# asp.net .net asp.net-mvc prefetch

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

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

1 个答案:

答案 0 :(得分:4)

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

选项#1 :(不是一个漂亮的解决方案,但可行。)

注意:为此尝试使用简单的Javascript而不依赖于JQuery或其他(从那时起你仍然需要“加载”.JS文件,这会破坏你的问题。

使用某种“OwnLogic”处理您的src/href或其他预定义属性标记以定义“基本目标”, 但是浏览器无法启动获取该图像或其他文件的请求。 示例:

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

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

我没有测试过这个概念,因此可能会出现“延迟”或客户端的某种延迟(但用户可能没有注意到这一点)。

选项#2:

视图结果执行过程(在MVC生命周期中)告诉我们'Render()'方法是最后一个要执行的方法。 有了这个说法,您可以创建自己的自定义覆盖逻辑 示例:拦截视图渲染以在所有部分视图上添加HTML / JS? How to intercept view rendering to add HTML/JS on all partial views?

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