当前位置: 首页 > 图文教程 > 网站运营 > 网站优化 > Asp.Net程序员与SEO - Viewstate优化

网站优化
SEO 搜索引擎收录页面流程原理和方式
SEO 分析某关键词的竞争强度的方法
新手站长找外部链接和简单网站推广方法
SEO实例经验分享 搜索引擎分词和长尾
DEDECMS 网站优化4则细节
Google 处理采集数据的一些分析
SEO不容易 开始给SEO吹冷风
Tags 标签优化细节问题
选择关键词的心得和思路
site 域名首页是在第一四种原因
网站找好链接的6种方法
三天优化到百度第一等类似信息纯属骗人
SEO实验 不要过于相信搜索引擎内部人的话
让排名在百度更稳定
百度 反垃圾网站的若干问答
搜索引擎重复网页发现技术分析
站内链接对蜘蛛收录的负面影响以及对策
免费网站推广诀窍 多干体力活儿
SEO 准确的进行关键词的选取
SEO 更新网站内容时注意的链接策略

网站优化 中的 Asp.Net程序员与SEO - Viewstate优化


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 79 ::
收藏到网摘: n/a

什么是Viewstate

例如:
input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="DwxNTgzOTU2ODA7dDw7bDxpPDE+Oz47bDx0PDtsPGk8MT47PjtsPHQ8QDA8cDxwPGw8UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8aTwxPjtpPDg+O2k8OD47bDw+Oz4+Oz47Ozs7Ozs7OztAMDxAMDxwPGw8SGVhZGVyVGV4dDtEYXRhRmllbGQ7U29ydEV4cHJlc3Npb247UmVhZE9ubHk7PjtsPHB1Yl9pZDtwdWJfaWQ7cHViX2lkO288Zj47Pj47Ozs7PjtAMDxwPGw8SGVhZGVyVGV4dDtEYXRhRmllbGQ7U29ydEV4cHJlc3Npb247UmVhZE9ubHk7PjtsPHB1Yl9uYW1lO3B1Yl9uYW1lO3B1Yl9uYW1 lO288Zj47Pj47Ozs7PjtAMDxw" />

当我看到这一大片内容的时候就觉得这是一个asp.net SEO过程中的难题,一直没有找到方法,这些天查了下英文站找到了这个方法。下面是我看了Search Engine Optimization - Moving View State to the bottom of the pagehttp://www.manuelabadia.com/blog/PermaLink,guid,7924eaf8-b406-43af-9444-b816f6dfa246.aspx)这篇文章后,觉得该方法可行,就翻译了一下,我英文水平有限,只把我看懂的大概意思和自己的理解写下来,希望对大家有帮助。

当我们去对一个ASP.Net页面做SEO的时候,会发现一个很大的问题那就是隐藏的视图状态。很多搜索引擎都明确页面抓取的界限,那就是只会抓取到网页前几千个字节的文本内容,所以当你页面的前2KBViewState垃圾的时候,你的页面很可能会遭到处罚。那么我这篇文章的目的就是把视图状态数据移动到尽可能少。

我已经发现一些途径来解决这个问题,在响应输出的时候重写最终的HTML编码。当这个方法执行后我发先它占有很大的CPU使用。所以,我需要一种方式既能实现功能又不浪费的CPU的方法。我发现反射的方式做到这一点。我的方法使用的ASP.NET控制适配器架构。

控制适配器是一个可以用来控制所产生的HTML控制它适应的类。由于页面类,是一种负责任的渲染视图状态隐藏字段( Page.BeginFormRender调用Page.RenderViewStateFields ,适配器的网页是必要的。然而,视图状态隐藏字段在ASP.NET基础架构中起着关键作用和难以修改相关的HTML

一个PageAdapter有一个方法叫做GetStatePersister()返回的对象继承于PageStatePersister 。当加载和保存视图状态的时候调用PageStatePersister。这里有2个类是从PageStatePersister HiddenFieldPageStatePersisterSessionPageStatePersister继承来的。第一种是默认情况下,存储视图状态中的隐藏字段名为__VIEWSTATE 。第二个存储视图状态在session中。因此,我们可以很容易地创建一个自定义PageStatePersister来控制视图状态加载和保存过程。最大的问题是如何在form标记关闭之前建立隐藏的视图状态,同时以完全透明的解决办法。经过一些尝试我想出了一个解决方案,我很高兴的。

我意识到,这是不可能完全从页面顶部删除视图状态隐藏字段,因为他在ASP.NET的架构这方面发挥着关键作用。但是,同任何自定义页面状态持续的ASP.NET基础架构提供至少一个空视图状态的隐藏字段只有70字节:

<input type="hidden"name="__VIEWSTATE"id="__VIEWSTATE"value=""/>

相关阅读:

Asp.Net程序员与SEO - .Net的URL静态化

Asp.Net程序员与SEO - .Net基于SEO友好数据分页

Asp.Net程序员与SEO - 关注Sitemap