<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ? ? ? 用了半個月的時間做完了這個新聞發布系統。從寫文檔到C#開發后臺再到ASP.NET開發前臺,通過這樣一個艱辛的歷程,我對B/S有了初步的了解。這個系統看著簡單,就發現它用到了所有我們B/S項目中我們需要學習的內容,真是麻雀雖小五臟俱全。佩服牛老師那“絕對不放過1PX”的精神!!! ? ? ? 如下圖一是我的概述總結。 ![](https://box.kancloud.cn/2016-08-19_57b6bd249b4ab.jpg) [圖一 牛腩總結] ## 一、文檔的編寫 ? ? ? ?視頻(1-4)的開始在介紹系統開發前的設計階段,很熟悉,當初敲機房收費系統也是這樣一個過程。通過牛腩系統發布系統的前期設計文檔的編寫,讓我又溫習了一遍設計說明書中的重點內容:UML圖,用例設計,UI設計,數據庫設計。包括后邊開發階段的時候,一直都是以這個文檔為開發的宗旨的。我才恍然大悟:原來文檔是這個樣子用的。 ## 二、后臺的編寫 ? ? ? ?視頻(5-17)接下來就開始了系統開發的階段,后臺的編寫跟C/S的項目沒有區別。我是沒有看出有什么不一樣的地方。首先系統采用了三層架構,這些都是我們上個階段學到的內容。然后詳細的介紹了SQLHelper類的形成過程,找到數據庫連接時的共性進行不斷的抽象和封裝,根據查和增刪改返回值不同,而分成兩個函數。然后是數據庫的設計,主要用到了存儲過程和連接查詢。存儲過程在機房收費系統的時候就用到了,這里主要把連接查詢復習了一下。自考《數據庫原理》中也詳細介紹了內連接的內容,也是對學過內容的一次回顧。總體感覺:后臺編寫主要就是回顧了一下之前的知識而已。 ## 三、前臺編寫 ? ? ? ![](https://box.kancloud.cn/2016-08-19_57b6bd24b5c5b.jpg) [圖二 前臺] ? ? ? 視頻(18-63)接下來就到了我們要學習的B/S部分(如圖二)了,如我開篇所說,這個系統看著簡單,就它用到了所有我們B/S項目中我們需要學習的內容,下面根據它們出場的順序,談談我對它們的理解。 ### 1、前臺開發三大神器:HTML、CSS、JavaScript - **神器一:Web的“骨架”——HTML** ? ? ? HTML(HyperText Mark-up Language)超文本標記語言或超文本鏈接標示語言(標準通用標記語言下的一個應用)HTML是一種制作萬維網頁面的標準語言,是萬維網瀏覽器使用的一種語言,它消除了不同計算機之間信息交流的障礙。【XML(Extendsible Markup Language 可擴展性標記語言)和HTML的區別在于:前者是用來傳輸和存儲數據,后者用來顯示數據。】 ? ? ? HTML有三大基本要素:標簽,屬性,元素。如下面這段代碼,<>括號里面的內容,就是標簽。其中帶有“/”的標簽是結束標簽。標簽里面比如color="green",其中color就是font字體的顏色屬性。<title>靜夜思</title>這句的意思是:起始標簽-內容-閉合標簽。 ~~~ <html> <head> <title> 靜夜思 </title> </head> <body> <!--這個是一首詩--> <center> <h2><font color="green">靜夜思</font></h2>      <b>作者:李白</b> <hr color="blue"> <p> <b><i><font color="blue" size="13">窗前明月光,疑是地上霜。<br> 抬頭望明月,低頭思故鄉。</font></b></i> </center> </body> </html> ~~~ - **神器二:Web的“血肉”——CSS+DIV** ? ? ? DIV+CSS是WEB設計標準,它是一種網頁的布局方法。與傳統中通過表格(table)布局定位的方式不同,它可以實現網頁頁面內容與表現相分離。在用到了HTML標簽的基礎上,我們使用CSS盒子模型,可以把標簽當成盒子,對網頁進行布局。使用CSS盒子可以對我們的主頁進行渲染,使表現形式越來越豐富。 - **神器三:Web的“神經”——JavaScript** ? ? ? ?JavaScript 直譯式腳本語言,嵌入HTML,有利于結構與新聞分離,添加網頁的動態功能效果。比如JavaScript可以對鼠標的單擊事件或者瀏覽器的操作進行捕捉。在新聞發布系統中把JS單獨寫成了一個腳本文件,然后引用到HTML中,這樣做的好處是:有利于結構和操作活動的分離。JQuery是一個優秀的JavaScript庫,使用它的目的是方便處理HTML,實現動態效果,提供與AJAX的交互。 ? ? ? 舉個例子,在新聞發布系統中有個對類別進行管理的功能,要求實現點擊表格中的某個單元格的時候,該單元格就會變成一個文本框用于進行編輯。 效果如下圖三: ![](https://box.kancloud.cn/2016-08-19_57b6bd252307b.jpg) [圖三] ~~~ $(function () { // 相當于在頁面中的body標簽加上onload事件 $(".caname").click(function () { // 給頁面中有caname類的標簽加上click函數 var objTD = $(this); var oldText = $.trim(objTD.text()); // 保存老的類別名稱 var input = $("<input type='text' value='" + oldText + "' />"); // 文本框的HTML代碼 objTD.html(input); // 當前td的內容變為文本框 // 設置文本框的點擊事件失效 input.click(function () { return false; }); }); }); ~~~ ### 2、Web異步更新——AJAX ? ? ? ?AJAX框架(Asynchronows JavaScript And XML )整合了JS,XML,CSS,實現了JS和XML的異步,創建了交互式網頁應用的網頁開發技術。在后頭與Server進行少量數據交換(異步更新是指:不重新加載整個頁面,只實現局部的更新。) ? ? ? 舉個例子,在系統中當更改了新聞類別名稱后,更新到數據庫中。這個樣子,類名信息需要取出最新的,利用AJAX可以實現不刷新整個網頁,只修改類別table。如下: ~~~ //在文本框中按下鍵盤某鍵 input.keydown(function (event) { var jianzhi = event.keyCode; var input_keydown = $(this); switch (jianzhi) { case 13: //按下回車鍵,提交數據 var newText = $(input_keydown).val();//修改后的名稱 //當老名與新名不同才進行提交 if (oldText != newText) { //獲取該類別所對應的序號 var caid = $.trim(objTD.prev().text()); //AJAX異步更改數據庫 var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime(); $.get(url, function (data) { if (data == "false") { $("#test").text("類別修改失敗,請查看是否類別名稱有問題"); input_keydown.trigger("focus").trigger("select"); // 全選 } else { $("#test").text(""); objTD.html(newText); } }); } else { //前后文本一致,把文本框變成標簽 objTD.html(newText); } break; case 27: //按下esc,取消修改,把文本框變成標簽 $("#test").text(""); objTD.html(oldText); break; } }); ~~~ ? ? ? ?一般處理程序如下,判斷類別是否重復,調用B層的更新類別名函數: ~~~ <%@ WebHandler Language="C#" Class="ChangeCaName" %> using System; using System.Web; using BLL; using Model; public class ChangeCaName : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string caid = context.Request.QueryString["caid"]; string caname = context.Server.UrlDecode( context.Request.QueryString["caname"]); //是否重名 if(new CategoryManager().IsExists(caname)) { context.Response.Write("false"); return; } //更數據庫類別名稱 Category ca = new Category(caid, caname); bool b= new CategoryManager().Update(ca); if (b) { context.Response.Write("true"); } else { context.Response.Write("false"); } } public bool IsReusable { get { return false; } } } ~~~ ## 四、小結 ? ? ? 在整個新聞發布系統的制作過程中,接觸到了一些web前臺開發必備技術,給我的感覺是有些東西還不知道是什么,也沒學過,就已經用上了。像HTML、ASP.NET、JavaScript、XML、AJAX。這些都不是一個個單獨存在的,每一個技術的應用都是為了彌補上一個技術的應用的不足。這仿佛是暗示了我,在B/S接下來的學習中,要多多想想這些技術之間的關系。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看