在视图中呈现ASP.net MVC页面时,有没有办法找到所有src=""
网址,然后动态生成DNS预取标记?
https://www.chromium.org/developers/design-documents/dns-prefetching
答案 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">
'。