中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Asp.Net程序員與SEO - Viewstate優(yōu)化

2019-03-05    來(lái)源:Two Man

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

什么是Viewstate?

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

當(dāng)我看到這一大片內(nèi)容的時(shí)候就覺(jué)得這是一個(gè)asp.net SEO過(guò)程中的難題,一直沒(méi)有找到方法,這些天查了下英文站找到了這個(gè)方法。下面是我看了Search Engine Optimization - Moving View State to the bottom of the pagehttp://www.manuelabadia.com/blog/PermaLink,guid,7924eaf8-b406-43af-9444-b816f6dfa246.aspx)這篇文章后,覺(jué)得該方法可行,就翻譯了一下,我英文水平有限,只把我看懂的大概意思和自己的理解寫下來(lái),希望對(duì)大家有幫助。

當(dāng)我們?nèi)?duì)一個(gè)ASP.Net頁(yè)面做SEO的時(shí)候,會(huì)發(fā)現(xiàn)一個(gè)很大的問(wèn)題那就是隱藏的視圖狀態(tài)。很多搜索引擎都明確頁(yè)面抓取的界限,那就是只會(huì)抓取到網(wǎng)頁(yè)前幾千個(gè)字節(jié)的文本內(nèi)容,所以當(dāng)你頁(yè)面的前2KBViewState垃圾的時(shí)候,你的頁(yè)面很可能會(huì)遭到處罰。那么我這篇文章的目的就是把視圖狀態(tài)數(shù)據(jù)移動(dòng)到盡可能少。

我已經(jīng)發(fā)現(xiàn)一些途徑來(lái)解決這個(gè)問(wèn)題,在響應(yīng)輸出的時(shí)候重寫最終的HTML編碼。當(dāng)這個(gè)方法執(zhí)行后我發(fā)先它占有很大的CPU使用。所以,我需要一種方式既能實(shí)現(xiàn)功能又不浪費(fèi)的CPU的方法。我發(fā)現(xiàn)反射的方式做到這一點(diǎn)。我的方法使用的ASP.NET控制適配器架構(gòu)。

控制適配器是一個(gè)可以用來(lái)控制所產(chǎn)生的HTML控制它適應(yīng)的類。由于頁(yè)面類,是一種負(fù)責(zé)任的渲染視圖狀態(tài)隱藏字段( Page.BeginFormRender調(diào)用Page.RenderViewStateFields ,適配器的網(wǎng)頁(yè)是必要的。然而,視圖狀態(tài)隱藏字段在ASP.NET基礎(chǔ)架構(gòu)中起著關(guān)鍵作用和難以修改相關(guān)的HTML 。

一個(gè)PageAdapter有一個(gè)方法叫做GetStatePersister()返回的對(duì)象繼承于PageStatePersister 。當(dāng)加載和保存視圖狀態(tài)的時(shí)候調(diào)用PageStatePersister。這里有2個(gè)類是從PageStatePersister HiddenFieldPageStatePersisterSessionPageStatePersister繼承來(lái)的。第一種是默認(rèn)情況下,存儲(chǔ)視圖狀態(tài)中的隱藏字段名為__VIEWSTATE 。第二個(gè)存儲(chǔ)視圖狀態(tài)在session中。因此,我們可以很容易地創(chuàng)建一個(gè)自定義PageStatePersister來(lái)控制視圖狀態(tài)加載和保存過(guò)程。最大的問(wèn)題是如何在form標(biāo)記關(guān)閉之前建立隱藏的視圖狀態(tài),同時(shí)以完全透明的解決辦法。經(jīng)過(guò)一些嘗試我想出了一個(gè)解決方案,我很高興的。

我意識(shí)到,這是不可能完全從頁(yè)面頂部刪除視圖狀態(tài)隱藏字段,因?yàn)樗?/span>ASP.NET的架構(gòu)這方面發(fā)揮著關(guān)鍵作用。但是,同任何自定義頁(yè)面狀態(tài)持續(xù)的ASP.NET基礎(chǔ)架構(gòu)提供至少一個(gè)空視圖狀態(tài)的隱藏字段只有70字節(jié):

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

相關(guān)閱讀:

Asp.Net程序員與SEO - .Net的URL靜態(tài)化

Asp.Net程序員與SEO - .Net基于SEO友好數(shù)據(jù)分頁(yè)

Asp.Net程序員與SEO - 關(guān)注Sitemap

標(biāo)簽: SEO ASP.NET 程序員 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:搜索引擎技術(shù)揭密:排序技術(shù)

下一篇:一句話SEO優(yōu)化:網(wǎng)站排名的49個(gè)影響因素