代码之家  ›  专栏  ›  技术社区  ›  Vijay

在服务器端标识Silverlight

  •  1
  • Vijay  · 技术社区  · 16 年前

    我有什么?

    我有一个Web部件,上面显示了一个从列表中选择信息的层次结构图。图表是使用Silverlight和HTML绘制的。

    我想做什么?

    如果在客户端计算机上安装了Silverlight,我希望显示Silverlight关系图,否则我希望显示HTML关系图。

    我面临什么问题?

    我想检查服务器端是否安装了Silverlight,并呈现适当的图表。基本上,我不想使用JavaScript来识别它,也不想在加载图表时做不必要的回发。

    是否可以在服务器端实现这一点?

    谢谢你的时间!

    3 回复  |  直到 16 年前
        1
  •  0
  •   Pete OHanlon    16 年前

    严格来说,这是不可能的。除了通过HTTP循环之外,您无法访问客户端,因此需要一个客户端机制来返回此信息,即类似于javascript的信息。

    不过,您可以做的是使用CSS定位图表,如果Silverlight存在,则将其放在顶部(再次使用CSS)。不过,老实说,这和往返的开销一样多,因为您总是要加载两次数据。如果您需要Silverlight来显示图表,那么只需要求用户必须安装Silverlight来查看图表-毕竟,如果他们想查看Flash图像,您希望他们加载Flash。

        2
  •  1
  •   Rubens Farias    16 年前

    您可以尝试一下:

    <asp:Silverlight runat="server" ID="SilverlightControl"
        Source="~/Control.xap" Windowless="true">
        <PluginNotInstalledTemplate>
            <!-- here go your HTML fallback content -->
        </PluginNotInstalledTemplate>
    </asp:Silverlight>
    

    当然,这可以翻译成 <OBJECT> 元素,如果不使用ASP.NET

        3
  •  0
  •   Prof. Falken    16 年前

    我不确定,但我认为这是不可能的。浏览器字符串中没有标识Silverlight支持的内容。无论如何,如果您使用HTTP1.1,对Silverlight的额外获取通常不会非常昂贵。