我已經在已經引用了jQuery的v1.7.1的ASP.NET WebForms頁面上實現了StackExchange MiniProfiler。 jQuery的文件在本地託管,所以我的主文件看起來是這樣的:爲什麼MiniProfiler會加載jquery-1.7.1,即使我已經在頁面上加載了它?
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<%= MiniProfiler.RenderIncludes() %>
然而,當我查看生成的輸出源,我得到類似這樣
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
...
load('/app/mini-profiler-resources/jquery.1.7.1.js?v=tNlJPuyuHLy/d5LQjyDuRbWKa0weCpmO3xkO6MH4TtA=', initMp);
</script>
東西展望dev的工具網絡選項卡上,我可以看到,它的投入兩個要求,一個是Scripts/jquery-1.7.1.min.js
,另一個用於/app/mini-profiler-resources/jquery.1.7.1.js
難道這不是一個相當大的冗餘問題?如何阻止MiniProfiler包含請求,下載和解析jQuery庫的另一個副本?
感謝您的解釋。值得在RenderIncludes()方法中加入默認的'bool = true'參數來選擇jQuery的加載嗎?然後用戶知道他們正在頁面的其他地方加載正確的版本,然後可以調用'RenderIncludes(false)'。如果你認爲這是一種可行的方法,那麼很樂意做這項工作。 – growse 2012-04-12 07:40:34
罰款一個補丁,也許RenderIncludes(useExistingjQuery:true) - 這反過來可以生成'jQueryMP = jQuery;'而不是加載它 – 2012-04-12 08:28:57
在最新版本,請執行此操作:StackExchange.Profiling.MiniProfiler.Settings.UseExistingjQuery = true; – pbz 2012-12-29 12:23:25