麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 編程設計 > 正文

關于動態與靜態化頁面的問題

2023-05-20 20:23:42
字體:
來源:轉載
供稿:網友

先談一下本文會用到的三種網頁格式,分別是HTML、SHTML、ASPX。它們各有特點:

HTML即為本文的主角:靜態頁面。如果瀏覽器從服務器上請求一個HTML頁面,服務器把該頁面原封不動地發送給瀏覽器。因此它的反應速度是最快的,而且對于cpu、內存等等的要求比較低。

ASPX是目前比較流行的動態網頁格式。ASP .NET頁面的擴展名為 .aspx。如果瀏覽器請求的是一個ASP .NET頁面,服務器在把它回送到瀏覽器之前會處理頁面中的所有可執行代碼。動態網頁的一個特點是信息交互、及時更新、頁面文件少、開發速度比較快。但是它的一個嚴重的問題是在訪問量比較大,而服務器的配置和資源比較有限的情況下,一些頻繁的讀寫數據庫、程序邏輯等等,會使得服務器負擔不起而當機。

因此對于訪問量比較大的網站,網頁靜態化是一個比較可靠的解決方案。但是靜態頁面重復的內容比較多,在信息量比較大的網站,全HTML可以說是無論對于開發者或者使用者,都是缺乏人性化的工作。例如我有一個顯示內容的頁面,它有左右兩塊,右邊是文章內容,可能是長時間甚至永遠不會變動的,左邊是包含公告、新聞等的一些導航,更新速度比較快。那如果左邊的公告有了新的內容,為了讓每個頁面的信息都準確,那所有的頁面都要重新制作,這操作起來明顯很不方便。于是就有了SHTML的存在。SHTML的一個特點就是在服務器會做一定的預處理,使得它可以用include file的方式,把若干個文件包含進來。例如上例的頁面,可以拆分為a.html和b.html,然后用c.shtml把這兩個文件包含進來,那在更新的時候只需要更新a.html,而b.html不需要更新,這樣可以減少大量的制作工作。可能動態網頁就是根據這個而產生的。在asp.net中,這是最基本的控件思想。以下是c.shtml的頁面代碼:

<div class=”contaier”>
<div id=”left”><!-- #include file=”a.html”--></div>
<div id=”right”><!-- #include file=”b.html”--></div>
</div>

因此,對于asp.net,可以采用輸出shtml頁面的方式,動態生成靜態頁面,來解決性能問題。如何動態生成靜態頁面,目前有兩種主流的方式,一種是做一些靜態頁面模板,然后把內容填充替換,最后輸出文件。一種是利用HtmlTextWriter重寫AttributeCollection.Render。這兩種方法都可以在網上搜到相關的文章。但是在這里我要引發更深入的問題:

(1)靜態頁面怎么更新?能不能自動更新?

(2)一些動態的元素,如登陸、搜索、訪客,在靜態頁面中如何實現。

這里很可能就會用到ajax或者直接用Microsoft.XMLHTTP來做一些異步操作,最終可以解決上面的兩個問題,但是以我的經驗來說,總會覺得處理起來,特別別扭,特別艱難,很難保證能形成一種健壯的程序結構,以適應隨時變化的客戶需求。

因此,我們回歸到asp.net,看aspx頁面能不能給靜態化一種解決方案,也就是我的目標:動態靜態化。為此,先介紹作為這個思路的支持,需要用到asp.net的以下幾個特點:

(1)aspx支持類似shtml的的語法,如果一個aspx頁面沒有帶代碼,那它跟shtml和html的靜態頁面的速度和效果是基本一致的。

(2)aspx支持前置代碼,即完全不要aspx.cs的后置代碼,只要在頂部把聲明后置代碼的那一段去掉,即<%@ Page Language="C#"%>用來聲明文件。然后直接把代碼寫在頁面:

<script runat="server">
 protected void Page_Load(object sender, EventArgs e)
 {
        if(!IsPostBack)
        {
            this.funcInit();
        }
 }
</script>

這樣代碼就會執行,即不需要預先編譯,動態編譯。

(3)aspx支持以ascx命名的各種用戶控件。

有了以上三點的支持,我們就可以實現動態靜態化。首先。按動態網站的開發方式,開發出一個網站。網站中的所有頁面的內容都是由ascx的控件組成,.aspx中只有簡單的html框架和用戶控件引用。做一個頁面或者一個winform工具實現以下靜態發布功能:

(1)錄入ascx控件信息,包括引用路徑、參數等等。

(2)點擊生成,則會自動將上面錄入的控件信息,寫入一個跟它同名的aspx頁面上。訪問這個動態生成的aspx頁面,可以得到他生成的文本內容。

(3) 根據獲得的文本內容,在指定目錄下生成.html或者.txt文件。

(4)自動或手動(頁面比較復雜的用手動)把aspx頁面中的這個ascx控件,改成的引用方式。

最后看一下結果:在開發環境下,依然是動態頁面,一點都沒有改變。這對于后期維護修改有很大的幫助。由于增加了一個靜態發布的過程,在發布環境下,同是index.aspx的頁面,會被全部或者部分改成包含文件的shtml的模式。然后由于是aspx頁面,所以某些不需要靜態化的控件功能可以繼續正常使用。而所需要做的工作就是在前期錄入那些頁面控件的相關信息,以后修改完,就直接按發布就完成。以上就解決了aspx中的靜態化問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品免费大片 | 国产午夜亚洲精品 | av不卡毛片 | 大学生一级毛片 | 作爱在线观看 | 黄网站在线免费看 | 亚洲aⅴ免费在线观看 | 免费观看一级淫片 | 亚洲二区免费 | 国产小视频在线 | 成人小视频免费在线观看 | 亚洲一区二区三区日本久久九 | www.国产.com| 午夜伊人 | 国产porn在线 | av性色全交蜜桃成熟时 | 毛片免费观看完整版 | 中文区中文字幕免费看 | 中国美女一级黄色片 | 成人观看网站 | 成人激情在线观看 | 91九色视频观看 | 91色成人 | 性爱视频在线免费 | 中文字幕在线一 | h视频在线免费看 | 日韩在线欧美在线 | 国产精品成人久久 | 国产麻豆交换夫妇 | 羞羞视频免费观看网站 | 中国杭州少妇xxxx做受 | 福利在线免费 | 国产精品久久久麻豆 | 国产激情视频在线 | 国产精品久久久久久一区二区三区 | 黄色毛片一级视频 | 国产精品视频一区二区三区四 | chengrenzaixian | 成年人网站视频免费 | 午夜男人在线观看 | 久久思思爱 |