1. 您的位置:首页 > seo技术 >内容

Silverlight:分包下载和Seo优化解决方案

一、 按模块分包

通常,大型Silverlight应用程序按模块分为多个Silverlight项目。编译后,将根据需要生成并加载多个xap软件包。最近开发的项目不需要全站点Silverlight,而是aspx hybrid Silverlight。直截了当地说,它是将相应的子模块xap包嵌入Aspx。

这样,分包就简单得多:直接使用js来控制DOM元素,修改对象元素中的源,并将其动态设置为不同的xap,以实现不同模块的刷新加载。(这比互联网上的主流方法更简单:使用WebClient动态下载xap包,然后反射加载。当然,此方法不适用于全站点Silverlight项目)

2. 通过按需反射在xap中加载页面

上面讨论的方法仅解决了按需加载不同xap文件的问题。但是,如果xap有多个页面,我如何确定加载xap后要显示哪个页面?

答案:参数输入+反射

当silvelright使用对象标签嵌入HTML时,您可以指定一些输入参数,类似于以下内容:

 

请注意,<参数名称="initparams"值="页面=基本。City"/>表示加载后显示城市页面。

那么我们怎样才能在SL中接受这个参数呢?请参阅以下代码:

Private void application_startup长沙seo优化(Object sender,StartubEventArgs e){//检查输入参数是否为(e。initparams!=NULL&E。initparams。containskey("page"){string pagename=E。initparams["page&##34;];//根据页面参数动态加载相应的实例程序集ASM=this。getType()。组装;用户控制page=ASM。Create实例(pagename)作为usercontrol;这。rootvisual=page;}else{//如果没有输入参数,则显示默认页面。rootvisual=New Airport(长沙seo优化);}
Iii。搜索引擎优化

这是Ria应用程序的常见问题。前面的解决方案不涉及这部分。默认情况下,xap模块是动态加载的,不同的页面是基于参数的动态反射加载的,不会改变浏览器的地址,所以搜索引擎总是认为这是一个页面,最终只能包含一个URL。

为了使搜索引擎更加友好,您可以在地址栏的#部分执行一些操作以达到最终效果:

如果基本。xap模块是动态加载的,显示模块中的城市页面,我们可以使地址栏类似于:http://localhost:1223/default。aspx#Basic | Basic。城市

切换到用户。xap模块(即用户管理模块),并在此模块中显示用户页面,我们可以使地址栏类似于:http://localhost:1223/default。aspx#User#User。用户

这样,虽然都是相同的默认值。aspx页面,搜索引擎将其视为两个不同的URL并搜索两个地址。

默认的完整代码。aspx如下:

<%@Page Language="C#"autoeventwireup="true"%>

示例源代码:http://files.cnblogs.com/yjmyzz/ReflectorXap.7z

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.botadmin.cn/sylc/1927.html