人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

改善ASP性能與外觀的技巧集錦(下)

改善ASP性能與外觀的技巧集錦(下)

更新時(shí)間:2022-10-02 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

技巧 19: 利用瀏覽器的驗(yàn)證功能
現(xiàn)今的瀏覽器對(duì)一些高級(jí)功能如 XML、DHTML、Java 小程序和遠(yuǎn)程數(shù)據(jù)服務(wù)提供支持。盡可能使用這些功能。所有這些技術(shù)都可以執(zhí)行客戶(hù)機(jī)端驗(yàn)證和數(shù)據(jù)緩存,免去了到 Web 服務(wù)器的往返。如果您在運(yùn)行一個(gè)智能瀏覽器,那么瀏覽器就能為您進(jìn)行一些驗(yàn)證(例如,在執(zhí)行 POST 之前,檢查信用卡校驗(yàn)和是否有效)。盡可能使用這一功能。通過(guò)減少客戶(hù)-服務(wù)器之間的往返,可降低 Web 服務(wù)器上的負(fù)載,并能減少網(wǎng)絡(luò)通信量(雖然發(fā)送到瀏覽器的第一個(gè)頁(yè)面可能比較大)以及服務(wù)器訪問(wèn)的任何后端資源。此外,用戶(hù)不必像住常一樣讀取新頁(yè),從而用戶(hù)的感覺(jué)會(huì)好一些。這樣做并不意味著您可以不進(jìn)行服務(wù)器端驗(yàn)證 - 您還應(yīng)始終進(jìn)行服務(wù)器端驗(yàn)證。這可以防止由于某種原因(如黑客,或?yàn)g覽器不運(yùn)行客戶(hù)機(jī)端驗(yàn)證例程)客戶(hù)機(jī)產(chǎn)生錯(cuò)誤的數(shù)據(jù)。人們已經(jīng)進(jìn)行了大量的工作,開(kāi)發(fā)“獨(dú)立于瀏覽器”的 HTML。正是由于這種憂(yōu)慮,開(kāi)發(fā)人員不愿再使用流行的瀏覽器功能,但這些功能本可以改善性能。對(duì)于一些真正的高性能站點(diǎn),必須關(guān)心瀏覽器“訪問(wèn)”問(wèn)題,一個(gè)好的策略是優(yōu)化頁(yè)面,使其適應(yīng)流行的瀏覽器。使用瀏覽器功能組件,可以在 ASP 中方便地檢測(cè)到瀏覽器功能。Microsoft FrontPage 等工具有助于設(shè)計(jì)適合于瀏覽器和指定 HTML 版本的代碼。參見(jiàn) When is Better Worse?Weighing the Technology Trade-Offs,以了解更進(jìn)一步的討論。
技巧 20:避免在循環(huán)語(yǔ)句中使用字符串串聯(lián)
許多人在循環(huán)語(yǔ)句中建立一個(gè)字符串,如下所示:
s = ?<table>? & vbCrLf
For Each fld in rs.Fields
s = s & ? <th>? & fld.Name & ?</th> ?
Next
While Not rs.EOF
s = s & vbCrLf & ? <tr>?
For Each fld in rs.Fields
s = s & ? <td>? & fld.Value & ?</td> ?
Next
s = s & ? *lt;/tr>?
rs.MoveNext
Wend
s = s & vbCrLf & ?</table>? & vbCrLf
Response.Write s
采用這種方法會(huì)出現(xiàn)一些問(wèn)題。第一個(gè)問(wèn)題是反復(fù)串聯(lián)字符串需要花兩次方的時(shí)間,更通俗地說(shuō),運(yùn)行這種循環(huán)語(yǔ)句所花的時(shí)間與記錄數(shù)乘以字段數(shù)所得值的平方成正比。在將 ADO 記錄集轉(zhuǎn)換為 HTML 表的特定情況下,應(yīng)考慮使用 GetRows 或 GetString。如果在 JScript 中串聯(lián)字符串,特別建議使用 += 運(yùn)算符,即,使用 s += ?某字符串?,而不使用 s = s + ?某字符串?。
技巧 21:?jiǎn)⒂脼g覽器和代理緩存
在默認(rèn)情況下,ASP 禁止在瀏覽器和代理中進(jìn)行緩存。這是有意義的,因?yàn)榫蛯?shí)質(zhì)而言ASP 頁(yè)面是動(dòng)態(tài)的,上面有隨時(shí)間不斷變化的潛在信息。如果頁(yè)面不要求在每個(gè)視圖上進(jìn)行刷新,您應(yīng)啟用瀏覽器和代理緩存。這可使瀏覽器和代理在一定的時(shí)間內(nèi)使用頁(yè)面的“緩存”副本,您可以控制時(shí)間的長(zhǎng)短。緩存可以大大減輕服務(wù)器上的負(fù)載,縮短用戶(hù)的等待時(shí)間。
哪一種動(dòng)態(tài)頁(yè)面可作為要緩存的頁(yè)面呢?
注意,在使用瀏覽器或代理緩存的情況下,Web 服務(wù)器上記錄的訪問(wèn)次數(shù)減少了。如果您想準(zhǔn)確地測(cè)量所有頁(yè)面視圖或張?zhí)迹筒幌M褂脼g覽器和代理緩存。瀏覽器緩存由 HTTP“過(guò)期”報(bào)頭控制,該報(bào)頭由 Web 服務(wù)器發(fā)送給瀏覽器。ASP 提供兩個(gè)簡(jiǎn)單的機(jī)制發(fā)送此報(bào)頭。要設(shè)置頁(yè)面使其過(guò)多少分鐘后到期,則應(yīng)設(shè)置 Response.Expires 屬性。
技巧 22:盡可能使用 Server.Transfer 代替 Response.Redirect
Response.Redirect 讓瀏覽器請(qǐng)求另一個(gè)頁(yè)面。此函數(shù)常用來(lái)將用戶(hù)重定向到一個(gè)登錄Response.Redirect 讓瀏覽器請(qǐng)求另一個(gè)頁(yè)面。此函數(shù)常用來(lái)將用戶(hù)重定向到一個(gè)登錄或錯(cuò)誤頁(yè)面。因?yàn)橹囟ㄏ驈?qiáng)制請(qǐng)求新頁(yè)面,結(jié)果是瀏覽器必須到 Web 服務(wù)器往返兩次,且 Web 服務(wù)器必須多處理一個(gè)請(qǐng)求。IIS 5.0 引入了一個(gè)新的函數(shù) Server.Transfer,它將執(zhí)行轉(zhuǎn)移到同一臺(tái)服務(wù)器上的另一個(gè) ASP 頁(yè)。這樣就避免多余的瀏覽器-Web-服務(wù)器的往返,從而改善了總體系統(tǒng)性能以及縮短了用戶(hù)的響應(yīng)時(shí)間。檢查“重定向”中的“新的方向”,上面應(yīng)該是 Server.Transfer 和 Server.Execute。
技巧 23:在目錄 URL 中使用后斜杠
一個(gè)相關(guān)的技巧是確保在指向目錄的 URL 中使用后斜杠 (/)。如果您省略了后斜杠,瀏覽器就會(huì)向服務(wù)器發(fā)出請(qǐng)求,只是為了告訴服務(wù)器,它在請(qǐng)求目錄。瀏覽器就會(huì)發(fā)出第二個(gè)請(qǐng)求,將斜杠附加到 URL 后面,只有此后,服務(wù)器才能以該目錄的默認(rèn)文檔或目錄列表(如果沒(méi)有默認(rèn)文檔且啟用了目錄瀏覽的話(huà))響應(yīng)。附加斜杠可省去第一個(gè)、無(wú)用的住返。為便于用戶(hù)閱讀,可以省略顯示名稱(chēng)中的后斜杠。
技巧 24:避免使用服務(wù)器變量
訪問(wèn)服務(wù)器變量會(huì)使 Web 站點(diǎn)向服務(wù)器發(fā)出一個(gè)特殊請(qǐng)求,并收集所有服務(wù)器變量,而不只是您請(qǐng)求的那個(gè)變量。這種情況類(lèi)似于,在發(fā)霉的閣樓上,在一個(gè)文件夾中查找某個(gè)文件。當(dāng)您想要找那個(gè)文件時(shí),您必須去閣樓上,先找到文件夾,然后才能找到這份個(gè)文件。當(dāng)您想要找那個(gè)文件時(shí),您必須去閣樓上,先找到文件夾,然后才能找到這份文件。當(dāng)您請(qǐng)求服務(wù)器變量時(shí),發(fā)生的情況是一樣的 - 您第一次請(qǐng)求服務(wù)器變量時(shí),就會(huì)使性能受到影響。后面的對(duì)其它服務(wù)器變量的請(qǐng)求,則不會(huì)對(duì)性能產(chǎn)生影響。決不要訪問(wèn)非限定的 Request 對(duì)象(例如,Request("Data"))。對(duì)于不在 Request.Cookies、Request.Form、Request.QueryString 或 Request.ClientCertificate 中的項(xiàng)目,則隱式調(diào)用 Request.ServerVariables。Request.ServerVariables 集合比其它集合慢得多。
技巧 25:升級(jí)到最新和最出色的
系統(tǒng)組件是恒定的,我們建議您將它們升級(jí)到最新和最好的配置。最好升級(jí)到 Windows 2000(因此,也應(yīng)升級(jí)到 IIS 5.0、ADO 2.5、MSXML 2.5、Internet Explorer 5.0、VBScript 5.1 和 JScript 5.1)。在多處理器計(jì)算機(jī)上,實(shí)施 IIS 5.0 和 ADO 2.5 可顯著改善性能。在 Windows 2000 下,ASP 可以很好地?cái)U(kuò)展到四個(gè)處理器或更多,而在IIS 4.0 下,ASP 的擴(kuò)展性不能超出兩個(gè)處理器。在應(yīng)用程序中使用的腳本代碼和 ADO 越多,升級(jí)到 Windows 2000 之后,性能的改善就會(huì)越多。如果目前還不能升級(jí)到 Windows 2000,您可以升級(jí)到 SQL Server、ADO、VBScript 和JScript、MSXML、Internet Explorer 和 NT 4 Service Packs 的最新版本。它們均可提高性能和可靠性。
技巧 26:優(yōu)化 Web 服務(wù)器
有多種 IIS 優(yōu)化參數(shù)可以改善站點(diǎn)性能。例如,對(duì)于 IIS 4.0,我們常常發(fā)現(xiàn),增加ASP ProcessorThreadMax 參數(shù)(參見(jiàn) IIS 文檔)可以顯著改善性能,特別是在傾向于等待后端資源(如數(shù)據(jù)庫(kù))或其它中間產(chǎn)品(如屏幕刷)的站點(diǎn)上。在 IIS 5.0 中,您可能發(fā)現(xiàn)啟用 ASP Thread Gating 比查找一個(gè) AspProcessorThreadMax 最佳設(shè)置效率更高,這一點(diǎn)現(xiàn)在已為大家所熟知。
最佳的配置設(shè)置取決于(其中一些因素)應(yīng)用程序代碼、運(yùn)行所在的系統(tǒng)硬件和客戶(hù)機(jī)工作負(fù)荷。找到最佳設(shè)置的唯一方法是進(jìn)行性能測(cè)試.
技巧 27:進(jìn)行性能測(cè)試
正如我們?cè)谇懊嬉呀?jīng)講過(guò),性能是一個(gè)特征。如果您想要改善站點(diǎn)的性能,那么就制定一個(gè)性能目標(biāo),然后逐步改進(jìn),直到達(dá)到目標(biāo)為止。不要,就不進(jìn)行任何性能測(cè)試。通常,在項(xiàng)目結(jié)束時(shí),再作必需的結(jié)構(gòu)調(diào)整已經(jīng)為時(shí)太晚,您的客戶(hù)將為此感到失望。將性能測(cè)試作為您日常測(cè)試的一部分來(lái)進(jìn)行。可以對(duì)單個(gè)組件分別進(jìn)行性能測(cè)試,如針對(duì)ASP 頁(yè)或 COM 對(duì)象,或?qū)⒄军c(diǎn)作為一個(gè)整體來(lái)測(cè)試。許多人使用單個(gè)瀏覽器請(qǐng)求頁(yè)面,來(lái)測(cè)試 Web 站點(diǎn)的性能。這樣做就會(huì)給您一個(gè)感覺(jué),即站點(diǎn)的響應(yīng)能力很好,但這樣做實(shí)際上并不能告訴您在負(fù)載條件下站點(diǎn)的性能如何。
一般情況下,要想準(zhǔn)確地測(cè)試性能,您需要一個(gè)專(zhuān)門(mén)的測(cè)試環(huán)境。此環(huán)境應(yīng)包括硬件,其處理器速度、處理器數(shù)量、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)配置等方面與生產(chǎn)環(huán)境的硬件相似。其次,您必須指定客戶(hù)機(jī)的工作負(fù)荷:有多少同時(shí)的用戶(hù),他們發(fā)出請(qǐng)求的頻率,他們點(diǎn)擊頁(yè)面的類(lèi)型等等。如果您沒(méi)有站點(diǎn)實(shí)際使用情況的數(shù)據(jù),您必須估計(jì)一下使用的情況。最后,您需要一個(gè)可以模擬預(yù)期客戶(hù)機(jī)工作負(fù)荷的工具。有了這些工具,您就可以開(kāi)始回答諸如“如果我有 N 個(gè)同時(shí)的用戶(hù),那么需要多少服務(wù)器?”之類(lèi)的問(wèn)題。您還可以找出出現(xiàn)瓶頸的原因,并以此為目標(biāo)進(jìn)行優(yōu)化。

溫馨提示:喜歡本站的話(huà),請(qǐng)收藏一下本站!

本類(lèi)教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 晋城| 和平县| 彩票| 九龙县| 广安市| 灵宝市| 巴林左旗| 罗源县| 家居| 当阳市| 济南市| 交口县| 太谷县| 鄂托克旗| 凤山县| 乾安县| 贵阳市| 九台市| 博白县| 吴旗县| 永清县| 湖南省| 巴马| 兴安县| 日喀则市| 永春县| 澜沧| 温州市| 双流县| 保靖县| 饶平县| 阿图什市| 华池县| 辛集市| 贵德县| 景德镇市| 易门县| 法库县| 浦城县| 平罗县| 高密市|