Доставяне на Silverlight в HTML обект или вграден маркер base64 кодирани данни

Възможно е base64 да кодира изображение и да го достави като част от html съдържанието с помощта на <img src="data:image/gif;base64,UEsDBBQAAAgIALp9...MTs9Snj3==">

Забелязвам, че етикетът на обекта на Silverlight трябва да бъде нещо като:

<object type="application/x-silverlight"  
    data="data:application/x-silverlight;base64,"   
    width="300" height="300">  
    <param name="source" value="myApp.xap"/>  
<object>

и изглежда, че трябва да мога просто да сложа това, използвайки същата техника като с изображенията:

<object type="application/x-silverlight"  
    data="data:application/x-silverlight;base64,SOFIjoije3r8...WMDioaAAA=="   
    width="300" height="300">   
<object>

И го накарайте да зареди данните от xap файла от кодирането base64 в параметъра data. Но това не работи - зарежда приставката Silverlight и няма грешки в IE или Firefox, но модулът xap не се изпълнява.

Знам, че браузърите могат да бъдат много придирчиви по отношение на синтаксиса за този вид неща, така че ви питам всички.

Целта е да се вгради Silverlight в asp.net сървърен контрол без допълнителната сложност за разработчика да се налага да хоства xap някъде и да разреши uri на xap и т.н. Интересувам се основно от зареждането на xap от вградения base64 кодиран низ, но ако това не може да се направи, ще трябва да се направят добри решения за опростяване на използването на приложението Silverlight до един ред код.

Благодаря!


person Jason Kleban    schedule 18.02.2010    source източник


Отговори (2)


Дори и да го накарате да работи, препоръчвам да не използвате този подход поради следните причини:

  1. Времето, необходимо за зареждане на цялата страница, би било дълго
  2. Това не се възползва от кеширането на браузъра на XAP, така че всеки път, когато страницата се зареди, xap трябва да бъде прочетен.
person Michael S. Scherotter    schedule 18.02.2010

Оценявам времето, което отделихте, за да разгледате въпроса ми. Открих, че "по-доброто решение" е WebResource.axd - той ни предоставя възможността да зареждаме ресурси директно от правилно украсен сборник само чрез неговото присъствие. Това е перфектно. Реших, че ще трябва да изисквам от потребителите да добавят всякакви боклуци към web.config за персонализирани httpHandlers или нещо подобно, но се оказва, че WebResource.axd е включен от asp.net 2.0 за тази цел.

Ето статията, която намерих, обясняваща всичко:

http://www.4guysfromrolla.com/articles/080906-1.aspx

person Jason Kleban    schedule 21.02.2010