1. 程式人生 > >asp.net修行入門指導

asp.net修行入門指導

dom對象 訪問 服務器端 語言 引號 事件觸發 for 初始 鏈式編程

突然想起來大學的一個專業課老師,教C,C#,他的教學特點就是只教簡單知識,現在想想真有道理,假如上來就教我們枯燥難以理解的高深知識,我們會恐懼編程的,極大地打擊學習的興趣,所以他C語言的指針從來沒教過我們(我是考軟考及工作中自學的指針,感覺還不錯)。

言歸正傳:

《HTML》

html是標簽解釋性語言,瀏覽器的頁面是不是繪圖文檔?把標簽控件元素繪制到這個文檔圖面上?這個繪制過程是不是用瀏覽器引擎(一直不太理解引擎在軟件中的意思)完成的(還是有遊覽器內核的功能完成的)?繪圖是不是由圖層疊加N層(像ps制作圖,winform拖一個控件就是一個圖層,微觀想象成圖層很厚)而來?

標準的html是遵守xhtml約定的。

《CSS》

瀏覽器在繪制渲染(不太理解渲染與繪制的區別)標簽元素控件的時候,是不是除了繪制元素本身,再根據(感覺用查找,尋找更準確)樣式來進一步繪制?

主要的三種樣式:樣式找元素(這個範圍是N(N>0));元素找樣式(.class選擇器);一對一的尋找(ID選擇器);

樣式的位置:元素內聯<head中<單獨link文件(目的也是為了松耦合)

《JavaScript》

瀏覽器能執行js程序是不是用了一個解釋一行代碼就可以執行一個代碼的工具(這點我也不懂)?js是解釋性弱語言(直接按照正常邏輯思維理解),沒有數據類型的概念,好像不是申明一個數據類型,而是直接要一個內存空間(只是個人理解)?這個內存空間可以動態的存各種“類型”的數據?可以模擬面向對象的各種類型,js中的閉包好像調用一個方法,返回結果又是一個方法,這要明白,C語言中的方法名表示一個內存地址,這樣這個內存地址一直使用中,就可以保存調用方法的局部變量了。我記得C#中的委托,有個target對象,這個對象就可以取到委托處理函數寄宿的對象。

js引用的方式:元素加載後<script>標簽中<頁面head標簽中<單獨的js文件中。(同樣是體現隔離松耦合或者是通用提取集中管理)

用var申明一種類型(其實沒有類型的概念,如果去掉var相當於頁面變量);數組是一種特殊的字典。var arr=[1,2,3,4]; var dic={"name":wwj,"age":30};這是簡寫初始化對象。

字符串用單引號或雙引號都可以。

《DOM》

DOM是把頁面上的元素構造成一個樹狀對象。用JS腳本來操作DOM對象。頁面上標簽控件的事件是不是也走的消息隊列模式?像Winform一樣,窗口事件觸發後把消息給操作系統,操作系統再把消息給應用程序的消息隊列,然後調用相應的處理函數。DOM好像是api類庫,js可以調用其中的對象(類庫是不是在瀏覽器進程中或者類庫文件在哪裏?)

dom中的常用對象是Window對象(我理解成入口對象),dom最常用的操作就是選擇器與過濾器,因為要在dom這個對象樹上查找要操作的對象。

document.getElementById("元素ID")

事件的處理函數是誰,及事件調用那個方法執行,這是兩種寫法。

《JQuery》

因為各個瀏覽器操作dom的方法不是完全相同,所以JQuery把這些差異封裝起來提供統一的訪問方式,內部應該是把判斷不同瀏覽器的操作封裝在JQuery方法內部。

鏈式編程是建立在隱式叠代的基礎上。在此匿名方法表現的淋漓盡致(因為方法只是臨時用一次,沒必要起名稱)

因為需要對界面元素進行操作,所以選擇器,過濾器是獲取界面元素對象的方式。

《WebForm》

先探討原理:http通過socket通信,端與端(IPEndPoint)的通信,客戶端把數據發到服務器端,IIS等web服務器來監聽請求,完成端與端通信。

asp.net是不是一個插件框架?我們的web應用程序跑在這個微軟寫的插件框架上(比如大型的桌面程序就是采用插件框架osgi或者自己實現)?凡是框架都有很多約束規則

HttpRuntime有個PR方法來處理請求,所以asp.net首先會把請求封裝成HttpWorkerRequest。然後繼續封裝成HttpContext對象,這種對象屬於逐步填充對象,它把處理過程中所有需要的參數都組合到一個對象裏。參數有了,接下來HttpRuntime創建處理請求對象HttpApplication。這個對象采用處理管道的方法把處理函數拋出來。(具體是采用反射的方法創建IHttpModule來註冊我們的事件處理函數【插件框架基本都會用到反射】)而真正處理請求的是在處理管道第八個事件PostMapRequestHandler觸發的時候創建(獲取)IHttpHandler處理程序。在第11個事件PreRequestHandlerExecute之後,HttpApplication執行處理程序的PR方法。

asp.net都是圍繞請求,處理,響應的模型運行的。

只有form中帶name的value及cookie才會提交到服務器,當然對webform來說還有viewstate。

webform中的頁面aspx是一種模板,(把模板理解成裏面有很多占位符,.net程序處理後替換占位符,然後渲染回瀏覽器)。

瀏覽器只認識html標記語言,所以.net會把服務器標簽渲染成html標簽,原生的html當成字符串原樣發回瀏覽器。

《Ajax》

目的是整個頁面不刷新,只是局部刷新。對IE來說,JS在瀏覽器端new一個XMLHttpRequest(如同C#異步new一個WebClient發送請求)向處理程序發請求,然後回調我們寫的處理函數。

《MVC》

asp.net這個框架是怎麽把webform請求的URL換成請求控制器的方法?(包括框架把請求URL對應成WebForm的頁面,這些都是asp.net這個框架所完成的功能)

由於aspx耦合度太高,太臃腫,MVC這個擴展框架把它分成控制器和視圖。一個控制器裏可以有N個action方法,這樣也避免了html+js+ajax+一般處理程序模式中太多的處理程序的問題。

以上只是個人理解,後續會在工作中繼續深入理解。

本人目前處於離職狀態,有合適的服務器端開發工作,請幫忙介紹一下,先謝謝了。

asp.net修行入門指導