none
怎样实现“xap包”按需动态加载 RRS feed

  • 常规讨论

  • 怎样实现“xap包”按需动态加载???Silverlight为什么首次加载比较慢呢?

    一、一个网友的解释:

    1、silverlight首次加载时会将整下xap包装载到本地,如果xap包很大,会占用一定的时间去下载它。可以将silverlight应用程序分成多个xap包,程序运行时只加载必要的xap包如登录木块,其他的xap包实行按需动态加载。prism框架可满足此需求。

    2、xaml页面除资源外,控件的xaml是在构建对象时初始化。当然xaml的复杂度也会影响到界面的解析速度。
    3、silverlight是ria,对服务器的性能影响不大。

    二、如果这样加载页面:

    //string charttype = "";
      string charttype = e.InitParams["ChartType"].ToString();
      if (charttype == "")
      {
      //this.RootVisual = new ElecMonitoring();
      this.RootVisual = new EnergyStructure();
      }

      if (charttype == "ElecMonitoring")
      {
      this.RootVisual = new ElecMonitoring();
      }

      if (charttype == "WaterMonitoring")
      {
      this.RootVisual = new WaterMonitoring();
      }

      if (charttype == "BathRoom")
      {
      this.RootVisual = new BathRoom();
      }

      if (charttype == "BathRoom2")
      {
      this.RootVisual = new BathRoom2();
      }

    这样,在页面首次加载时“XAP”包会被完全载入,也就是所有“XAML”页面资源会被完全载入。但是“XAML”页面的对象并没有初始化,没有被解析,是不是也可以节省资源,加快载入速度???


    有精到广,做出自己的特色。

    2012年3月28日 5:27

全部回复