核心技术:Silverlight4RIAServices.doc_第1页
核心技术:Silverlight4RIAServices.doc_第2页
核心技术:Silverlight4RIAServices.doc_第3页
核心技术:Silverlight4RIAServices.doc_第4页
核心技术:Silverlight4RIAServices.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MSDN 2010-03-23 Silverlight 4 + RIA Services - Ready for Business: Search Engine Optimization (SEO) (Part III)第3步:为重要内容提供一个低级版本真是太棒了,我们已经弄了一个“深层链接”,我们的方法足以让搜索引擎发现所有链接,当搜索引擎来到这个页面的时候,它能搜索到什么?嗯,大部分搜索引擎只解析HTML,因此,如果通过执行选择“PageView Source”,我们将明白搜索引擎所看到的:如果通过菜单命令“ToolsManage Addons”禁用了插件,我们再去浏览,看到的就是:我们就看到了这么老大一张空白页面!当然没有呈现动态内容。代码实际上已经被作为要加载的动态内容而运行了。我确信搜索引擎不会很快在它们的数据中心运行这段silverlight (或 flash 或 ajax)代码。所以,我们需要一些替代内容。幸运的是,这是很容易做到的。首先,使用任何可以替代的内容,以便显示出来。重要的是注意该内容并非只为“搜索引擎”。专为搜索引擎编写的内容有时被称作搜索引擎欺骗或者网络垃圾,这些内容隐瞒网站的真实性,误导了搜索引擎的用户。(有害无信的网络垃圾)相反,对于那些没有安装Silverlight的人来说,该内容是一个备用呈现页面。它可能没有所有功能,但它却是最简单的解决方案。因此,搜索引擎爬虫没有安装 Silverlight,以便到了一些有意义而且准确的检索。把下面的HTML代码添加到你的“default.aspx”页面中去。 Hi, this is my alternative content 注意其中的:display: none,这意味着我们不希望浏览器去显示它除非没有安装Silverlight。为了实现这个目标,添加这段代码到页面: if (!isSilverlightInstalled() var obj = document.getElementById(AlternativeContent); obj.style.display = ; 请注意,真正酷的“isSilverlightInsalled”方法,是来自Petr的帖子:old-but-good.我只是向我 Silverlight.js 文件添加此功能。function isSilverlightInstalled() var isSilverlightInstalled = false; try /check on IE try var slControl = new ActiveXObject(AgControl.AgControl); isSilverlightInstalled = true; catch (e) /either not installed or not IE. Check Firefox if (navigator.pluginsSilverlight Plug-In) isSilverlightInstalled = true; catch (e) /we dont want to leak exceptions. However, you may /to add exception tracking code here return isSilverlightInstalled;当我们从一个没有安装Silverlight的浏览器运行它的时候,就看到了“替代内容”:但是如果安装了Silverlight,就能够看到我们漂亮的Silverlight应用的内容。真棒,但我们如何显示合适的内容?我们希望精确显示Silverlight应用中的数据,并且我们要尽可能少写代码。我们真的不希望维护太多的页面。因此,让我们在网页中的AlternativeContent这个Div元素中,添加一些非常基本的代码。这个ListView是用来显示饭店详细信息的。 现在我们需要将其绑定到我们的数据源 使用VS的设计视图,我觉得这很容易做到。请注意,你要弄一个可视化的div,这样你就能在designer中使用它。然后我们配置数据源选择要使用的查询方法是很容易的下一步,我们需要基于我们之前定义的routes来绑定查询参数。为完成ListView,现在我们要认真地重复同样的步骤 下面给我们提供了一些非常简单的 aspx 代码:1: 3: 4: 5: 6: 7: 8: 9: 10: 11: 14: 15: 17: 18: 19:下一步,我本要让这些控件制造基于数据的UI。1: protected void Page_Init(object sender, EventArgs e) 2: 3: RestaurnatDetails.EnableDynamicData(typeof(MyApp.Web.Restaurant); 4: PlateDetails.EnableDynamicData(typeof(MyApp.Web.Plate); 5: string resId = Page.RouteData.Valuesrestaurant as string; 6: if (resId != null) Response.Write(window.location.hash=#/Plates;); 7: 8:注意,我们添加了第4到5行,以便启用基于这两个ListViews的动态数据。最后一步,我们需要添加DynamicData 使用的模板的集合。你可以从任何Dynamic Data工程中获得这些。只需将其复制到 web 工程的根目录即可。你可以编辑这些模版,以便精确显示你的数据。在EntityTemplates目录中,我们需要为每个实体创建一个模板(在这个例子中,有Plate和餐馆这两个实体)。这将控制他们的显示方式。1: 2: 3: 4: 5: 6: 7: 8: () 9: 10: , 11: 12: asp:HyperLink runat=server ID=link NavigateUrl= Text=details. 13: 14: 15: 16:注意就在这儿,我们只是做了些简单的格式化操作和挑选字段的工作,那些字段是我们要在替换内容中出现的。对Plate执行相同的操作.现在我们准备运行它。在根目录,在没有添加查询字符串参数的情况下,我们会看到一个餐馆列表,当然,全都是HTML代码。然后我们可以添加一个导航来定位某个特定餐馆的所有美食。但是,让我们通过真正的浏览器看一看,确保我们看到的和搜索引擎看到的是一样的。Lynx还在!Lynx是我1992年在北卡罗来纳州州立大学Leazar实验室的DEC2100机器上用过的第一个浏览器.现在它还仍能正常工作!还有细节:这款经典的文本浏览器只显示了文本 就是网络蜘蛛所看到的。现在,来看实际的测试。我们使用Bing去搜索“我的美食浏览器 - 和Joe一起烹饪”,真的,这个页面确实在那:点击这个链接吗?浏览器导航到的页面正是我们在Silverlight中看到的页面。当然,这和其它的搜索引擎来说也是一样的. 如果你刚好是另外那个搜索引擎的用户;-)总结你已经学习了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论