文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>(转)Silverlight 巧用文件生成时间强制客户端载入最新xap文件

(转)Silverlight 巧用文件生成时间强制客户端载入最新xap文件

时间:2011-01-07  来源:allanli

    那么有没有一种方法可以解决上面提到的问题呢?当然,且听分解。

    我们先看一段在html中签入Silverlight应用的标准代码示例

        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/MefSample.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50826.0" />
          <param name="autoUpgrade" value="true" />
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
               <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object>

    注意下面这行,我们就要从这里下手。

<param name="source" value="ClientBin/MefSample.xap"/>

    我们知道,要防止浏览器自动缓存文件,经常用的一个做法就是在要加载的文件名后面加入一个随机字符串(比如验证码的刷新),如Guid、DateTime.Now.Ticks一类。

    因此我们这里的思路就是通过判断xap文件的生成时间而决定是否重新载入xap包。

    最终View的全部代码如下:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
    width="100%" height="100%">
    @{
        string xapFile = "ClientBin/MefSample.xap";
        string xapPath = HttpContext.Current.Server.MapPath("\\") + xapFile;
        DateTime xapCreatedDate = System.IO.File.GetLastWriteTime(xapPath);
        xapFile += "?v=" + xapCreatedDate;
    }
    <param name="source" value="@xapFile" />
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.50826.0" />
    <param name="autoUpgrade" value="true" />
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration: none">
        <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight"
            style="border-style: none" />
    </a>
</object>

注意,这里我是用ASP.NET MVC(Razor语法)承载xap,对WebForm或WebForm View同样适用,请自行更改。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载