• QQ空间
  • 收藏

Asp.Net程序员与SEO - Viewstate优化

| 2019-06-24 阅读 23

什么是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

2019-07-21
今日推荐 牛逼!罗斯再次爆发!三分9中7暴砍31+5!无奈詹姆斯这个新帮手太强悍
北京时间11月8日 三连败的森林狼客场挑战湖人 两队首次交锋湖人4分惜败 此役他们将全力复仇 昨天杜克与肯塔基上演NCAA焦点战 森林狼后卫泰厄斯-琼斯想去看... <详情>
2019-07-21
今日推荐 澡堂之悟 (王曙摄影散文之708)
王曙摄影散文之708 澡堂之悟      很久很久没有到澡堂去洗澡了,过去每年去澡堂洗几次热水澡,目的很明确,就是在家里洗澡自己的后背老是擦不到,久而... <详情>
2019-07-21
今日推荐 天猫双11前销量达到2亿件,这家女装店凭什么?
支付宝锦鲤之后,韩都衣舍用终身免单,打造了一位“2亿锦鲤”。但更重要的是,它想借此告诉大家两个关键数字,卖出2亿件服饰以及全网累计6000万的粉丝。  ✎文|天... <详情>
2019-07-21
今日推荐 ⊙ 时尚博主都爱背的法棍包,20 年前就火了!
提到法棍包,大家是不是想到了法国的传统长面包 其实 Madam 说的是 Fendi 的 Baguette 啦! Baguette 在法语中译为 「法式... <详情>
2019-07-21
今日推荐 未来房价怎么走?
戳蓝字,置顶紫霞 期待成为你的老铁 一.   对于只有一套房的朋友来说,似乎房价涨跌与自己关系不大,毕竟这套房就是自住的。   但对于加杠杆的炒房客来说,政... <详情>
2019-07-21
今日推荐 昨日青空 | 因为有你们,所以是经管
昨日青空 | 因为有你们,所以是经管 <详情>