日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

如何使用应用程序库缓存

發(fā)布時(shí)間:2025/6/17 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用应用程序库缓存 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文字摘自:http://msdn.microsoft.com/zh-cn/library/dd833069%28v=vs.95%29.aspx

?

應(yīng)用程序庫緩存可在用戶重新訪問網(wǎng)站時(shí)幫助改善啟動(dòng)性能。

當(dāng)您使用應(yīng)用程序庫緩存時(shí),Silverlight 將某些程序集打包成應(yīng)用程序包外部的外部部件(.xap 文件)。應(yīng)用程序包中的清單指定啟動(dòng)時(shí)所需的程序集,并指示它們是在應(yīng)用程序包的內(nèi)部還是外部。

當(dāng)用戶首次訪問您的網(wǎng)頁時(shí),Silverlight 插件下載應(yīng)用程序包以及所有需要的外部部件。這些文件添加到瀏覽器緩存中,以便可以在后續(xù)訪問時(shí)再次使用。

所有下載的文件都受服務(wù)器和瀏覽器中的緩存配置設(shè)置約束。在典型的配置中,僅當(dāng)文件不在緩存中或它們比緩存的版本更高時(shí),才下載這些文件。

庫程序集的更改機(jī)會(huì)遠(yuǎn)小于應(yīng)用程序程序集。因此,將它們作為單獨(dú)的文件進(jìn)行緩存非常重要。這樣,當(dāng)您更改應(yīng)用程序代碼而非庫代碼時(shí),許多回訪者將只下載 .xap 文件。

Silverlight 隨 Silverlight SDK 提供了許多庫,而它們不是運(yùn)行時(shí)的組成部分。這些庫已預(yù)配置為用于應(yīng)用程序庫緩存。在 Visual Studio 中,這些庫與運(yùn)行時(shí)程序集一起位于"添加引用"對(duì)話框的".NET"選項(xiàng)卡上。還可以從 Silverlight SDK 文件夾訪問它們。默認(rèn)情況下,Silverlight SDK 安裝在 %ProgramFiles%\Microsoft SDKs\Silverlight 文件夾中。還可以配置自己的程序集,以便支持應(yīng)用程序庫緩存。

應(yīng)用程序庫緩存僅影響應(yīng)用程序在啟動(dòng)時(shí)需要的那些程序集。如果您的應(yīng)用程序按需加載了一些程序集,該應(yīng)用程序會(huì)始終從服務(wù)器檢索這些程序集,而始終不會(huì)從瀏覽器緩存中檢索。

下面的過程介紹如何啟用和使用應(yīng)用程序庫緩存,以及如何配置自己的程序集進(jìn)行緩存。

啟用應(yīng)用程序庫緩存
  • 在"解決方案資源瀏覽器"中,選擇要為其啟用庫緩存的 Silverlight 應(yīng)用程序項(xiàng)目。

  • 在"項(xiàng)目"菜單上,選擇項(xiàng)目名稱"屬性"。

    將顯示項(xiàng)目設(shè)計(jì)器。

  • 在"Silverlight"選項(xiàng)卡上,選擇"使用應(yīng)用程序庫緩存減少 XAP 大小"。

    說明:

    不能在同一個(gè)應(yīng)用程序中使用應(yīng)用程序庫緩存和瀏覽器外支持。瀏覽器外應(yīng)用程序要求所有啟動(dòng)程序集駐留在應(yīng)用程序包中。

  • 添加對(duì)于 Silverlight SDK 中某個(gè)庫程序集的引用,或者添加對(duì)于由有效的 assemblyShortName.extmap.xml 映射文件伴隨的任何程序集的引用。

    這會(huì)導(dǎo)致發(fā)生以下操作:

    • 程序集引用添加到項(xiàng)目中,其中"復(fù)制本地"值為 True。此值指示在啟動(dòng)時(shí)需要此程序集,并且該值與包內(nèi)程序集使用的值相同。

    • 當(dāng)您生成此項(xiàng)目時(shí),生成操作會(huì)將此程序打包成一個(gè)單獨(dú)的 zip 文件,并在應(yīng)用程序清單中生成 ExtensionPart 元素。

    • 當(dāng) Silverlight 插件加載應(yīng)用程序包時(shí),它檢查清單以搜索 ExtensionPart 元素,并下載所有對(duì)應(yīng)的文件。如果您的應(yīng)用程序?qū)崿F(xiàn)初始屏幕,它將繼續(xù)運(yùn)行,直到加載所有外部部件。

  • 將程序集配置為用于應(yīng)用程序庫緩存
  • 在程序集所在的相同位置創(chuàng)建一個(gè)映射文件。此文件必須與程序集同名,而將 .dll 文件擴(kuò)展名替換為".extmap.xml"。例如,Silverlight SDK 程序集 System.Json.dll 具有名為 System.Json.extmap.xml 的映射文件。

  • 按下面示例中所述將配置數(shù)據(jù)添加到映射文件中,并替換程序集元素中的值以與程序集匹配。

    復(fù)制

    <?xml version="1.0"?> <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><assembly><name>System.Json</name><version>2.0.5.0</version><publickeytoken>31bf3856ad364e35</publickeytoken><relpath>System.Json.dll</relpath><extension downloadUri="System.Json.zip" /></assembly> </manifest>

    name、version 和 publickeytoken 元素必須與對(duì)應(yīng)的程序集元數(shù)據(jù)相匹配。relpath 元素指示程序集文件名。最后,extension 元素通過 downloadUri 屬性指示打包的外部部件的名稱。

    downloadUri 屬性 (Attribute) 值用于填充應(yīng)用程序清單中的 ExtensionPart.Source 屬性 (Property),如下面的清單摘要中所示。

    復(fù)制

    <Deployment.ExternalParts><ExtensionPart Source="System.Json.zip" /> </Deployment.ExternalParts>

    如果 downloadUri 值是一個(gè)文件名,則當(dāng)您添加對(duì)程序集的引用時(shí),Visual Studio 提供以下支持:

    • 生成系統(tǒng)將程序集打包成具有指定文件名的 zip 文件。此文件將被復(fù)制到輸出目錄中 .xap 文件旁邊。

    • 如果您使用相同的 downloadUri 文件名添加對(duì)于多個(gè)程序集的引用,則生成系統(tǒng)會(huì)將它們?nèi)繅嚎s成單個(gè) zip 文件。

    • 不會(huì)自動(dòng)添加 .zip 擴(kuò)展名。盡管打包文件是 ZIP 文件,但您可以使用服務(wù)器要求的任何文件擴(kuò)展名。

    如果 downloadUri 是一個(gè)絕對(duì) URI,生成系統(tǒng)將不會(huì)對(duì)程序集打包。而是由您負(fù)責(zé)壓縮程序集并將其部署到指定的 URI。這可用于創(chuàng)建由多個(gè)應(yīng)用程序使用的庫的單一存儲(chǔ)庫。但是,當(dāng)您使用絕對(duì) downloadUri 值時(shí),應(yīng)考慮以下問題。

    • 如果 URI 與 .xap 文件位于不同的域中,則該域必須在其根目錄中具有跨域策略文件。有關(guān)更多信息,請(qǐng)參見 Silverlight 中的 HTTP 通信和安全。

    • 請(qǐng)記住,URI 是一個(gè)全局唯一標(biāo)識(shí)符,可以引用非常具體的程序集文件。這意味著,您可以并且應(yīng)該對(duì)不同的程序集版本使用不同的 URI。此外,當(dāng)您在更新后的 URI 中部署新程序集版本時(shí),應(yīng)繼續(xù)保持每個(gè)版本特定的 URI 和您創(chuàng)建的程序集。這有助于避免當(dāng)使用 Silverlight 的一個(gè)版本構(gòu)建的 .xap 文件試圖加載使用其他版本構(gòu)建的庫時(shí)可能產(chǎn)生的問題。

  • 在 Visual Studio 中測(cè)試應(yīng)用程序庫緩存
  • 下載并安裝 HTTP 通信監(jiān)視器,例如,Fiddler。這樣,您就可以查看 HTTP 請(qǐng)求和響應(yīng),并驗(yàn)證是否未下載緩存的文件。

  • 打開下面的 Windows 功能:

    • Internet 信息服務(wù) (IIS)

    • IIS 元數(shù)據(jù)庫和 IIS 6 配置兼容性

    • ASP.NET

    • Windows 身份驗(yàn)證

    IIS 是必需的,因?yàn)?Visual Studio 開發(fā)服務(wù)器在其 HTTP 響應(yīng)標(biāo)頭中不啟用緩存。

  • 在管理員帳戶的上下文中運(yùn)行 Visual Studio。

  • 在包含 Silverlight 項(xiàng)目的解決方案中,加入用于測(cè)試的 Web 項(xiàng)目。

  • 將 Web 項(xiàng)目配置為使用 IIS,并從 HTTP 通信監(jiān)視器中啟用 localhost 監(jiān)視。(例如,Fiddler 提供了一個(gè)代理 URL,您可以用它來替換"啟動(dòng) URL"值中的"localhost"。)

  • 執(zhí)行以下操作并觀察產(chǎn)生的 HTTP 通信:

    • 在 Visual Studio 中運(yùn)行您的應(yīng)用程序。

    • 在瀏覽器中按 F5 以重新加載頁面。

    • 在另一個(gè)瀏覽器窗口中打開該頁的 URL。

    • 在 Visual Studio 中重新生成解決方案,然后在瀏覽器中重新加載頁面。

    在初始下載之后,對(duì)于應(yīng)用程序包和庫文件的其他請(qǐng)求將不會(huì)生成附加的下載通信。而是請(qǐng)求由緩存的副本完成。但是,當(dāng)您重新生成應(yīng)用程序時(shí),將檢測(cè)到更改并且下載新副本。




    http://www.cnblogs.com/jacksonyin/archive/2011/03/25/1995416.html
  • 轉(zhuǎn)載于:https://www.cnblogs.com/elaborateday/archive/2011/03/29/1998711.html

    總結(jié)

    以上是生活随笔為你收集整理的如何使用应用程序库缓存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。