欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

若只如初見——WEB/BS開發(fā)必備基礎(chǔ)知識 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

若只如初見——WEB/BS開發(fā)必備基礎(chǔ)知識

發(fā)表時間:2012-5-23

發(fā)布人:葵宇科技

瀏覽次數(shù):43

  • 疑惑
    • 與C/S的不同
    • 數(shù)據(jù)傳遞機制
    • WEB特有屬性
    • 前臺與后臺的定義
  • 示例
    • 數(shù)據(jù)傳遞機制
    • Response和Request
    • 服務(wù)端控件
    • IsPostBack
  • 文尾

疑惑

話說接觸web開發(fā)有一段時間了,習慣于以前的C/S,理解起B(yǎng)/S中一些概念還是有些困難,例如最常用的Ispostback、客戶端與服務(wù)端的交互以及ASP.NET中的一些獨有屬性。

與C/S的不同

B/S(Browser/Server,瀏覽器/服務(wù)器模式),由于瀏覽器是現(xiàn)在最常用的軟件,這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護和使用,瀏覽器通過Web Server同數(shù)據(jù)庫進行數(shù)據(jù)交互。C/S(Client/Server,客戶機/服務(wù)器) ,是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開銷,需要安裝客戶端才可進行管理操作。

C/S和B/S的不同之處還很多,各有優(yōu)劣,在此不一一介紹。從部署上說,都是服務(wù)端/客戶端組成,只不過是一個是必須和服務(wù)端軟件一一對應(yīng),另外一個的客戶端是瀏覽器而已。但正是這個貌似簡單的不同,讓安百般理解不通。

數(shù)據(jù)傳遞機制

這點也是對web系統(tǒng)中非常重要但是又讓安“迷?!钡囊粋€原因,C/S的容易理解,數(shù)據(jù)在客戶端形成數(shù)據(jù)包通過協(xié)議傳給服務(wù)端,雖然B/S原理也是如此,但是因為前后臺代碼在同一個界面,也讓俺甚是不解。

web特有屬性

這個也不用說,什么session、Request、Response、表單、ispostback等。

這些都是想要跨入web開發(fā)必須掌握的基礎(chǔ)知識,一下用幾個簡單明了的示例結(jié)合圖片對這些疑惑稍作解答。

前臺與后臺的定義

前臺與后臺,這定義在C/S中可木有,因為我們一般做例子都在同一臺機器,理解不出來,在我看來,所謂前臺就是界面,即以后會生成html

示例

數(shù)據(jù)傳遞機制

先看一幅簡單明了的圖片:

其中上面的主機代表服務(wù)器,下面的顯示器代表瀏覽器,箭頭代表傳遞方向,數(shù)字代表傳遞順序。數(shù)據(jù)傳遞流程是這樣的:

1、首先是用瀏覽器發(fā)出訪問請求,就像是你輸入網(wǎng)址(例如http://www.aiting.tk)請求訪問該網(wǎng)址。

2、然后在服務(wù)器處理該命令,生成html頁返回給瀏覽器。

3、瀏覽器收到html頁后,要進行下一步操作,比如說點擊某個按鈕,把操作及數(shù)據(jù)回發(fā)(下面理解ispostback會使用到)給服務(wù)器。

4、如果有必要,服務(wù)器判斷是否是回發(fā)信息選擇不同的處理方法,處理完后再向瀏覽器返回一個html頁。

5、瀏覽器顯示處理后的html頁,至此一個數(shù)據(jù)傳遞流程完成。

需要說明的是,瀏覽器上顯示的信息和服務(wù)端控件,貌似是你一點就會有反饋,其實你看到的只是一個靜態(tài)的html頁,真正的數(shù)據(jù)和處理都需要服務(wù)器來執(zhí)行。

Response和Request

這兩個概念也是像安這樣初學者認為難啃的硬骨頭,我們同樣以一幅簡單易懂的圖片來解釋:

左面這幅圖是瀏覽器顯示的靜態(tài)html頁,右面的是服務(wù)器的aspx頁,細心點從地址欄就能看出來。其實我們"斷章取義"就能看出這兩個概念的大致作用。Request(請求)是將信息從瀏覽器發(fā)送給服務(wù)器;Response(響應(yīng))是將信息由服務(wù)器發(fā)送給給瀏覽器。我們上面的客戶端與服務(wù)端數(shù)據(jù)傳遞流程再解釋一次:

1、首先,瀏覽器輸入想要訪問的地址。

2、服務(wù)器接收到該相應(yīng),處理后發(fā)送給瀏覽器一個含有“姓名”、“國家名稱”和“提交”按鈕的html頁面。

3、瀏覽器出現(xiàn)該html頁面后,用戶輸入“Ritcha”和“USA”,點擊“提交”按鈕。

4、服務(wù)端收到回發(fā)的數(shù)據(jù)后,命令頁面顯示“您好,Ritcha,歡迎使用ASP.NET!”。

IsPostBack

IsPostBack,意為瀏覽器回發(fā)給服務(wù)器。在web開發(fā)中,IsPostBack 的使用比不可少,雖然用起來也非常簡單,但是理解起來卻是有點難度,尤其是對安這用思維邏輯甚是簡單的人。上面提到數(shù)據(jù)在服務(wù)器和瀏覽器之間傳遞時,服務(wù)端會判斷是否是回發(fā)信息,進而選擇處理的方式,這個在很多情況下是必要的,例如Page_Load頁面加載,如果每次刷新頁面都需要重新綁定,會浪費不必要的軟硬件資源,這時可以判定是否是回發(fā)頁面進而決定是否重新綁定。下面用簡單的例子說明IsPostBack 的作用。

不使用IsPostBack時:

前臺界面

后臺代碼:

    protected void Page_Load(object sender, EventArgs e)
    {
                txtUserName.Text = "";//清空用戶名
                txtPWD.Text = "";   //清空密碼
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
            if (txtPWD .Text =="a" && txtUserName .Text=="a")
            {
                    //賬號密碼均正確則登錄成功
                    Response.Write("登錄成功");}
            else 
            {
                    //否則登錄失敗
                    Response.Write ("登錄失敗");
            }
    }

運行結(jié)果:


結(jié)果分析:Page_Load事件會把用戶名和密碼清空,即使按F5刷新,也會登錄失敗,這是因為每次點擊Login按鈕都會執(zhí)行Page_Load時間,所以會一直登錄失敗。

使用 IsPostBack:

前臺界面相同,后臺代碼:

    protected void Page_Load(object sender, EventArgs e)
    {
            if (!IsPostBack )//如果不是回發(fā)頁面則執(zhí)行以下代碼
            {
                    txtUserName.Text = "";//清空用戶名
                    txtPWD.Text = "";   //清空密碼
            }
                
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
            if (txtPWD .Text =="a" && txtUserName .Text=="a")
            {
                    //賬號密碼均正確則登錄成功
                    Response.Write("登錄成功");}
            else 
            {
                    //否則登錄失敗
                    Response.Write ("登錄失敗");
            }
    }
運行結(jié)果:

結(jié)果分析:因為在Page_Load里面加入了IsPostBack驗證,首次加載的作用是清空原有的“txtUserName”和“txtPWD”,相當于填寫賬戶密碼的界面是回發(fā)頁面,不需要清空用戶名和密碼,所以登錄成功。我學的時候教程解釋的是是否第一次加載頁面,實際上是一樣的:是回發(fā)則證明不是第一次加載,反之,不是回發(fā)說明這是客戶端第一次加載頁面(結(jié)合上面介紹的瀏覽器與服務(wù)器數(shù)據(jù)傳遞流程)。

服務(wù)端控件

上面我們提到,服務(wù)端的控件,只要用戶操作,不管里面有沒有方法體都會執(zhí)行,還用剛才說明IsPostBack的前臺界面,后臺代碼如下:

    protected void Page_Load(object sender, EventArgs e)
    {
            if (!IsPostBack)//如果不是回發(fā)頁面則執(zhí)行以下代碼
            {
                    txtUserName.Text = "";//清空用戶名
                    txtPWD.Text = "";   //清空密碼
            }
            else 
            {
                    //否則登錄失敗
                    Response.Write("登錄失敗");
            }
                
    }
    protected void Button1_Click(object sender, EventArgs e)
    {

    }
運行結(jié)果:

結(jié)果分析:如代碼所示,即使login按鈕的代碼為空,仍然會執(zhí)行Page_Load中的代碼,說明服務(wù)器端控件,你有動它就動。

文尾

文檔到此就要告一段路,基本上把我當時的基礎(chǔ)概念理解疑問,全部自問自答。如果哪里表達有誤,歡迎指正共同進步!

相關(guān)案例查看更多