日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解BS结构应用程序

發(fā)布時間:2023/12/9 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解BS结构应用程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

隨著學習的深入,和編程經(jīng)驗的豐富,對BS應用程序有一些認識。

?

  在一些討論軟件技術的QQ群里,或一些社區(qū)、BBS中,經(jīng)常會有一些初學者會犯一些認知性的錯誤。比如經(jīng)常會有一些朋友提這樣的一些問題:“我怎么在ASP中調(diào)用我寫的這個JavaScript函數(shù)啊?”或者說“我怎么在JavaScript中調(diào)用我DAL層讀取數(shù)據(jù)的方法啊?”

?

  對于這些問題,說實話,我也犯過,當時也糾結的不得了。現(xiàn)在想想,其實是對BS結構的程序沒有一個整體的概念,或者可以說根本不知道什么叫BS結構的應用程序。因此,學習過程中會走不少彎路,經(jīng)歷不少痛苦。

?

  經(jīng)過這幾年的學習,有一些心得經(jīng)驗,和大家分享一下。

?

  要理解BS這個概念,必需要從BS應用程序的起源說起。

?

  BS應用程序又稱Web應用程序。其實最初Web并不是應用程序,它只是一種服務,一種共享信息的服務。

?

  Web是什么,是網(wǎng),是網(wǎng)絡。最早的網(wǎng)絡只是提供了一種下載并打開遠端頁面文件的一種服務,人們可以通過遠程計算機中的地址和文件保存的路徑來查看該計算機中共享的文件。這些文件通常是一頁頁的文本內(nèi)容,在網(wǎng)絡中訪問它的那個路徑稱為Uniform / Universal Resource Locator(URL,統(tǒng)一資源定位符)。

?

  后來人們在頁面中加入了超鏈接,使瀏覽者可以很方便的訪問其它相關的文件資源。這樣,從感觀上我們訪問的網(wǎng)頁由一頁變成了很多頁,也就更奠定了“Web Page(網(wǎng)頁)”這個名稱。

?

  隨著Web的發(fā)展,網(wǎng)頁中加入了圖片、動畫、聲音、視頻等多媒體元素,這些東西超出了文本的概念,并且出現(xiàn)了一種標記語言來規(guī)范這些頁面中的元素,使之更加合理的顯示在用戶的屏幕上。所以,這種語言就被人們稱之為HyperText Mark-up Language(HTML,超文本標記語言),這種文件的擴展名為html或htm(還有其它如shtml的延生品)。而專門解悉這種語言,給用戶展示完美的網(wǎng)頁內(nèi)容的程序,就被稱之為瀏覽器。

?

  后來,人們發(fā)現(xiàn),隨著頁面內(nèi)容的豐富,有時候很多頁面中的結構是完全相同的,只是內(nèi)容不同而已。這樣如果提供很多的網(wǎng)頁文件,不僅浪費計算機硬盤空間,也非常不容易維護。所以就有人想出在遠端計算機(Web服務器)中動態(tài)生成網(wǎng)頁的方法來解決這個問題。這樣就可以在硬盤中保存一份有共同頁面結構的網(wǎng)頁,在用戶請求查看某個信息的時候,Web服務器根據(jù)用戶請求的文件地址(URL),解悉并生成一份最終的頁面內(nèi)容,回傳給請求者,請求者接收到以后就像普通文件一樣獲取并打開它。

?

1 //(注:這些動態(tài)生成網(wǎng)頁的技術,最早的有CGI,后來出現(xiàn)ASP,PHP,JSP,ASPX等等)

?

1 /*
2 (注:在這里,要特別強調(diào)的一點,也就是每一個BS結構應用程序開發(fā)人員要牢記的是: 用戶(請求發(fā)送者,或者稱為瀏覽器、客戶端)向遠程計算機請求, 請求的永遠是文件資源(后來出現(xiàn)的Ajax技術可以獲取一段文本), 可以是網(wǎng)頁文件、圖片文件、動畫文件、聲音文件等等)
3 ?*/

?

  至此,對于用戶來說頁面內(nèi)容也非富了(有了多媒體),對于服務器來說頁面也可以動態(tài)生成了(更易于管理)。但美中不足的是:雖然有了非常酷的頁面效果,但對用戶交互方面的元素太少。人總想主動的控制一些優(yōu)秀的東西,而這樣的網(wǎng)頁除了點擊超鏈接,我們不能對它進行其它更多的操作。

?

  這似乎是點缺憾,但對于充滿智慧的勞動人民來說,這并不是什么問題。網(wǎng)頁開發(fā)人員研究了一種可以供瀏覽器解釋執(zhí)行的腳本代碼(腳本代碼種類非常多,最為典型的是JavaScript),這些代碼可以做為頁面的內(nèi)容直接寫到網(wǎng)頁文件中,也可以做為類似圖片一樣的外部資源被頁面引入執(zhí)行。

? 

?

  有了這些頁面腳本,我們的Web即刻變得炫麗起來。我們可以像普通的WinForm程序一樣,使用鼠標在頁面中執(zhí)行單擊、雙擊、拖放等操作(隨著這些操作,衍生出來許多的瀏覽器事件)。

?

  如此,我們的BS應用程序的整個技術體系就變的完美了。

?

  在整個BS應用程序的發(fā)展過程中,上面提到的各個相關技術都充當著一個功能明確的獨立模塊。這一切都圍繞著“使用戶能遠程獲取信息”這一主線。服務器使用動態(tài)網(wǎng)頁程序生成不同內(nèi)容的Web頁面,并提供相關的圖片等頁面外部資源;HTML是為了鏈接外部資源,并標記如何組織頁面中的元素;瀏覽器負責請求服務器獲取網(wǎng)頁內(nèi)容以及與之相關的其它外部資源文件,解悉頁面結構,并將獲取到的內(nèi)容(文本內(nèi)容或多媒體內(nèi)容)組織起來,更加美觀的呈現(xiàn)給用戶;頁面中的腳本程序是做為頁面的輔助內(nèi)容保存在頁面中,在適時的時候響應用戶的操作,執(zhí)行一些瀏覽器內(nèi)的動作。

?

  下面我們來看一下瀏覽器對服務器進行一次請求的整個過程演示圖:

?

?

?

1.? 首先瀏覽器請求服務器

2.? 服務器接收到瀏覽器的請求

3.? 服務器解悉瀏覽器請求的URL,根據(jù)URL確定請求的目標資源文件。這個資源文件通常是一個動態(tài)頁面(如ASP,PHP,JSP,ASPX等文件)的網(wǎng)絡地址(MVC結構的程序例外)。Web服務器根據(jù)動態(tài)頁面文件的內(nèi)容,和URL中的參數(shù),調(diào)用相應的資源(數(shù)據(jù)庫或文件)組織數(shù)據(jù),生成HTML頁面。(注意這里生成的是一個HTML文檔,里面可能包含JavaScript代碼等,這里在服務器端不管HTML文檔里的具體內(nèi)容)

4.? 生成HTML文檔以后,服務器響應瀏覽器的請求,將生成的HTML文檔發(fā)送給瀏覽器

5.? 瀏覽器接收請求得來的HTML文檔

6.? 瀏覽器對HTML文檔進行解悉,并請求相關的資源文件(JS,CSS,多媒體資源,內(nèi)嵌網(wǎng)頁)等。(在這里瀏覽器解悉完HTML文檔以后,就會進行呈現(xiàn),但同時也會向服務器發(fā)送請求來請求其它相關的資源文件)

7.? 服務器接到瀏覽器對資源文件的請求以后,將相應的資源文件響應給瀏覽器

8.? 瀏覽器接收到請求來的資源文件,整理并呈現(xiàn)到頁面中

9.? 在進行頁面呈現(xiàn)的時候,瀏覽器會從上到下執(zhí)行HTML文檔,當遇到相應的頁面腳本的時候,會對腳本進行分析,并解釋執(zhí)行相應的腳本代碼

?

  其實在第6步以后,我們就可以看到一部分頁面內(nèi)容了,不過可能是純文本內(nèi)容,沒有樣式,沒有圖片或其它資源。待到瀏覽器請求得到某資源的時候就會進行組織呈現(xiàn)。直到整個頁面顯示完成。

?

  不過最后我們要重點理解的是,在服務器端,HTML是做為一個文本文件進行處理的,包括HTML中的腳本,都被服務器端程序視之為文本。到瀏覽器中,呈現(xiàn)HTML時執(zhí)行JavaScript腳本程序,就純粹是一個獨立的的小程序了,程序的運行邊界是瀏覽器,也就是說它不可能超越瀏覽器運行。而瀏覽器和服務器之間交互就只能使用“請求”+“響應”的模式進行,Web開發(fā)中的異步交互技術Ajax也是使用該模式與服務器傳遞信息的。

?

  扯蛋一句:服務器和瀏覽器理論上是在兩臺不同的計算機中運行的,所以它們不可能共享內(nèi)存中的變量或者方法。而且他們根本就不是同一時間運行的,所以也不可能共享這些數(shù)據(jù)。

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/zourui4271/p/4922952.html

總結

以上是生活随笔為你收集整理的深入理解BS结构应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。