国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET偽靜態(tài)的實現(xiàn)及偽靜態(tài)的意義

2024-07-10 13:27:57
字體:
供稿:網(wǎng)友

核心提示:有些用戶覺得,偽靜態(tài)和真靜態(tài)實際被收錄量會相差很大,其實不然,從你個人角度,你去判斷一下一個帖子到底是真靜態(tài)還是偽靜態(tài)?

  一、偽靜態(tài)的用處

  有些用戶覺得,偽靜態(tài)和真靜態(tài)實際被收錄量會相差很大,其實不然,從你個人角度,你去判斷一下一個帖子到底是真靜態(tài)還是偽靜態(tài)?估計很難看得出,因為所謂靜態(tài)的意思,就是地址中不帶問號,不帶問號的就是靜態(tài),管他是真的還是偽的?搜索引擎看得出嗎?所以說,其實不論是真的還是偽的,其實對于搜索引擎來說都是一樣的,搜索引擎沒有說,你這個是偽的,我不收錄你。

  追根究底來說,為什么搜索引擎會不收錄帶問號的網(wǎng)址?因為搜索引擎怕由于問號而進入死循環(huán),稱為"搜索機器人陷阱(Spidertraps)"(以前動網(wǎng)就有這樣一個漏洞,蜘蛛進去出不來了),所以很多時候帶問號的地址搜索引擎是不會進去的,偽靜態(tài)對于搜索引擎來說,其實就是靜態(tài),因為地址中沒有帶問號,所以沒有真靜態(tài)比偽靜態(tài)收錄得多的說法。

  二、為什么選擇偽靜態(tài)?

  有很多用戶說:真靜態(tài)不好嗎?為什么不用真靜態(tài)?訪問起來不是更快嗎?負載不是更好嗎?等等等等……

  在這里,其實只用一個問題來回答:為什么選擇MYSQL?很多用戶大概不明白為什么那么多大型論壇都選擇了MYSQL數(shù)據(jù)庫作為儲存機制,大概大部分都是想:"因為DZ用了MYSQL,所以就是MYSQL".

  其實不然,試想DZ為什么會在那么多論壇程序并存的日子生存下來并笑傲江湖,很大原因是因為DZ用了MYSQL.試想如果大C當年改的程序是一個文本論壇,那還會有DZ的今天嗎?或者從另一個角度問,為什么那么多大型網(wǎng)站都選擇了MYSQL而不是文本作為儲存機制?

  所謂文本論壇,實際就跟真靜態(tài)的說法差不多了,將數(shù)據(jù)儲存在空間上面,大量讀寫硬盤,等等……

  為什么這種寫法會被淘汰呢?我相信答案不會是老師所說的:"Discuz!目前有 2129867 篇帖子,存儲成html的話大約是 20799M,也就是 20G左右。這當中還不計算由于磁盤存儲機制造成的空間浪費(100個 1k的文件占用的空間可能會是200K)。"

  這種說法從我個人觀點來看,這個理由不能給用戶不使用真靜態(tài)充分的理由。然而,另一個理由卻是值得我們注意思考的,也是為什么絕大多數(shù)站都不選擇生成靜態(tài):

  "刪除、更新這些html內(nèi)容會導致大量的磁盤io操作以及大量的磁盤碎片。"

  正如上面的說法,在實際當中確實會導致大量的磁盤I/O操作(input/output),大量進行I/O操作帶來的后果可想而知,會產(chǎn)生大量的磁盤碎片甚至會導致硬盤出現(xiàn)壞道。

  所以對于生成靜態(tài)而言,還不如去用文本論壇,可以更好的解決你們的需求。(副W就是做文本論壇出生的,當時的名字為ofstar,后因發(fā)展困難轉(zhuǎn)為MYSQL,而PW生成靜態(tài)頁面也就是PW以前文本方式稍加改進用于吸引用戶眼球的噘頭)

  當然,如果大家記憶力好的話,應(yīng)該可以記得PW4的時候PW論壇不能訪問很長一段時間,后來恢復到一段時間前的數(shù)據(jù),官方的說法是被人攻擊而導致硬盤損壞,其實這種說法是比較不可信的,相對于是被攻擊導致硬盤損壞還是大量I/O操作而產(chǎn)生的后果,我個人更傾向于后者。

  當然,如果大家比較關(guān)注5d6d的話,應(yīng)該知道前幾天有一天時間5d6d無法訪問,根據(jù)非官方消息是因為硬盤壞了,而損壞的原因我想當然是因為大量用戶大量進行I/O操作了,試想,我們一個論壇,進行磁盤I/O操作的僅為管理員進行更新緩存時進行的,而5d6d每一個會員就是一個管理員,試想下對磁盤是多大的考驗?所以我并不奇怪5d6d的硬盤壞了。

  當然,也許在讀這篇文章的很多朋友都有使用過BT,也聽說過BT對硬盤很傷,不能開多,而所謂傷害,和這里指的都是同一樣東西,大量I/O導致磁盤出現(xiàn)碎片甚至出現(xiàn)磁盤壞道。

  這里都是說些很實際的例子來說明問題了。

  三、偽靜態(tài)的壞處

  當然猶如一篇文章的作者所說的:"如果流量稍大一些使用偽靜態(tài)就出現(xiàn)CPU使用超負荷,我的同時在線300多人就掛了,而不使用偽靜態(tài)的時候同時在線超500人都不掛,我的ISS數(shù)是1000."

  確實是這樣的,由于偽靜態(tài)是用正則判斷而不是真實地址,分辨到底顯示哪個頁面的責任也由直接指定轉(zhuǎn)由CPU來判斷了,所以CPU占有量的上升,確實是偽靜態(tài)最大的弊病。

  四、我們應(yīng)該選擇偽靜態(tài)還是真靜態(tài)?

  我們來總結(jié)一下:

  1、使用真靜態(tài)和假靜態(tài)對SEO來說沒有什么區(qū)別

  2、使用真靜態(tài)可能將導致硬盤損壞并將影響論壇性能

  3、使用偽靜態(tài)將占用一定量的CPU占有率,大量使用將導致CPU超負荷

  4、最重要的一點,我們要靜態(tài)是為了SEO

  所以:

  1、使用真靜態(tài)的方法可以直接排除了,因為無論怎么生成,對硬盤來說都是很傷的。

  2、既然真?zhèn)戊o態(tài)的效果一樣,我們就可以選擇偽靜態(tài)了。

  3、但是偽靜態(tài)大量使用會照成CPU超負荷。

  4、所以我們只要不大量使用就可以了。

  5、既然靜態(tài)只是給SEO看的,我們只需要偽靜態(tài)給SEO就行了,不需要給用戶使用。

  6、所以我們只要在專門提供給SEO爬的Archiver中使用偽靜態(tài)就可以了。

  7、謝謝大家耐心看我寫的文章。

  8、有何不解的地方或是有不同的看法歡迎提出。

  五、關(guān)于偽靜態(tài)和真靜態(tài)的評論

  真正的靜態(tài)化和偽靜態(tài)還是有本質(zhì)的區(qū)別的。為瀏覽用戶處理一個純粹htm和一個調(diào)用多個數(shù)據(jù)的php在CPU的使用率方面明顯前者少。記得原來有個人說html下載硬盤讀寫頻繁,他這么說好像讀取數(shù)據(jù)庫不用讀寫磁盤似的,何況還有一大堆緩存的零散php也是放在硬盤的,這些讀取不用磁盤操作么?可笑。

  讀取單個htm+圖片F(xiàn)lash等附件就可以實現(xiàn)的目的,何苦要讀數(shù)據(jù)庫又要讀php緩存文件又要重新整合數(shù)據(jù)輸出再+圖片F(xiàn)lash等附件這么大費周章呢?CMS首頁不需要很多的互動的,論壇那一套不應(yīng)該拿到這里來用,相反應(yīng)該更多考慮的是:美觀!兼容!信息的直觀!性能!還有穩(wěn)定!

  其實所謂的偽靜態(tài)頁面,就是指的URL重寫,在ASP.NET中實現(xiàn)非常簡單

  首先你要在你的項目里引用兩個DLL:

  ActionlessForm.dll

  URLRewriter.dll

  真正實現(xiàn)重寫的是 URLRewriter.dll 但是如果你要實現(xiàn)分頁,那么必須使用這個ActionlessForm .dll

  首先在web.config里寫

  <configSections>

  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

  </configSections>

  <httpModules>

  <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

  </httpModules>

  <!-- 下面是配置重寫URL規(guī)則 -->

  <RewriterConfig>

  <Rules>

  <RewriterRule>

  <LookFor>~/Products/Jurisdiction_(w{3})。aspx</LookFor>

  <SendTo>~/En/Jurisdiction.aspx?jurid=$1</SendTo>

  </RewriterRule>

  <RewriterRule>

  <LookFor>~/Articles/(d{1,})。aspx</LookFor> <!-- 這個是被代替后的文件名,使用到正則表達式 -->

  <SendTo><![CDATA[~/En/Article_view.aspx?article_id=$1]]></SendTo> <!-- 這個是要給代替的網(wǎng)頁,一般是帶有問號后面帶參數(shù)的網(wǎng)頁 -->

  </RewriterRule>

  <RewriterRule>

  <LookFor>~/Articles/(d{1,})_(d{1,})。aspx</LookFor>

  <SendTo><![CDATA[~/En/Article_view.aspx?article_id=$1&page=$2]]></SendTo>

  </RewriterRule>

  </Rules>

  </RewriterConfig>

  這樣比如上面的網(wǎng)址http://localhost/En/Article_View.aspx?article_id=9就可以用http://localhost/Articles/9.aspx來代替,當然,你代替后的擴展名可以用任何iis能解釋的擴展名,如果你喜歡用htm做擴展名,那么在配置轉(zhuǎn)發(fā)規(guī)則上面配置為htm為擴展名的,同樣有些文章可能很長,往往我們會把一個文章分成幾頁,那么根據(jù)上面的配置,我們?nèi)绻朐L問http://localhost/En/Article_View.aspx?article_id=9&page=3我們就可以用http://localhost/Articles/9_3.aspx來代替,這樣當搜索引擎來抓起你的網(wǎng)頁的時候,就會收錄你這些網(wǎng)址下去,別人搜索到你網(wǎng)頁的時候,就可以從這些地址鏈接過來。

  然后這樣操作:

  右鍵點我的電腦-->管理-->展開'服務(wù)和應(yīng)用程序'-->internet信息服務(wù)-->找到你共享的目錄-->右鍵點擊屬性 -->點擊'配置'-->

  映射下面 -->找到。aspx的可執(zhí)行文件路徑復制路徑-->粘貼路徑-->擴展名為".html"-->然后把檢查文件是否存在的勾去掉這樣就可以了


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 盐池县| 韶山市| 阿瓦提县| 赤城县| 天全县| 那坡县| 沂南县| 会宁县| 弋阳县| 宁明县| 甘谷县| 海南省| 巢湖市| 雅江县| 定西市| 南投县| 忻城县| 盖州市| 库伦旗| 盘锦市| 汉川市| 亳州市| 玉田县| 黄大仙区| 晴隆县| 浦东新区| 纳雍县| 凯里市| 文山县| 思南县| 纳雍县| 固阳县| 泉州市| 卢氏县| 江安县| 张家港市| 长子县| 五华县| 隆尧县| 邵武市| 南木林县|