0

我即將到達一個需要加速頁面的項目結束。 要做到這一點我一直在使用谷歌的網頁速度見解(developers.google.com/speed/pagespeed/insights/)。.Net MVC添加異步綁定

爲了安撫谷歌神,我的最後一個任務是:

"Eliminate render-blocking JavaScript and CSS in above-the-fold content".

現在我明白了這一點,但什麼捉我出去是我捆綁我所有的JS/CSS腳本,所以我得到這個:

Optimize CSS Delivery of the following: 
http://myProjectSite/…iNLCI_VXqeQlOY11sPqvHktFt9zdFUTOQ0zWZ7M1 

作爲一個方面說明,我已經內聯的所有關鍵的CSS/JS是建立我上面幾行內容。 (我可以刪除我的包,上半部分(1800像素高)呈現完美沒有它,所以這似乎很好)。

所以,爲了讓我的CSS/JS解析沒有渲染阻塞,我想附加異步屬性到我的<script/>,但我不知道如何操縱它的輸出,當它通過捆綁創建。

我看着這些:

Async loading of javascript files using MVC4 Bundling and HTML5 async attribute

Why use @Scripts.Render("~/bundles/jquery")

Add an 'async' attribute to a JS include tag in asp.net web forms

這些鏈接建議使用格式類同:

@Scripts.RenderFormat("<script type=\"text/javascript\" src=\"{0}\"></script>", "~/bundles/mybundle") 

所以我代表處花了我的@ Scripts.Render(「〜/ jscript/base」),它的工作 - 與上面的代碼。

但使用的是,我得到一個錯誤:

Compiler Error Message: CS0117: 'System.Web.Optimization.Styles' does not contain a definition for 'RenderFormat' 

我看到RenderFormat不是由我的項目的認可,任何人都可以使用供應@ Scripts.Render(「〜/ JScript中/基地」的方法),但允許我添加Async屬性?

非常感謝。

+0

嘗試: @ Scripts.Render( 「<腳本類型= \」 文本/ JavaScript的\ 「異步SRC = \ 」{0} \「>」, 「〜/ JScript的/鹼基」) 獲取一個錯誤在控制檯中: 「http://myProject.com/%3Cscript%20type=」 – Benji40

回答

1

@Scripts.RenderFormat適用於JavaScript包。

當您嘗試使用@Scripts.RenderFormat呈現css樣式時,會出現編譯器錯誤。

要渲染樣式使用可使用@Scripts.RenderFormat但只針對JavaScript的加入@Styles.Render("~/bundles/mybundle")

async屬性。