經過測試瀏覽器對網頁中元素請求,提出減小瀏覽器請求的建議

最近一直在學習linux網絡編程這一塊的內容,本身作了一個簡單web服務器,之前沒法確切的瞭解web瀏覽器訪問網頁的的請求過程。如今有着樣的條件了,因此就本身實現一下看看過程了。 css

瀏覽器展現一個網頁的過程:(不涉及本地緩存,假設本地沒有緩存) linux

  1. 瀏覽器向服務發送請求,請求一個頁面。 web

  2. 服務器響應請求,向瀏覽器發送頁面。 編程

  3. 瀏覽器加載頁面,若是有外部文件,轉向4步,沒有結束 ubuntu

  4. 瀏覽器依次生成進程,分別請求所需文件。 瀏覽器

  5. 服務器響應請求,向瀏覽器發送外部文件。 緩存

  6. 瀏覽器加載外部文件。 服務器

下面是我測試獲得的結果的截圖。(此網頁中有外部的css、js、圖片) 網絡

瀏覽器結果(本代碼和結論只通過本人的簡單測試,可能存在問題。請相信本身的能力,勇於質疑。歡迎提供更好的、更快、更簡潔的代碼或者方法和指出錯誤。在ubuntu12.04使用gcc4.6.3版本編譯,在vc中如出現錯誤,請諒解。) 學習

請求網頁的效果圖:



獲得瀏覽器請求的結果:

 

看完測試結果後,你們發現瀏覽器先請求了頁面,依次請求了外部文件所須要的文件。因爲我寫的是單線程的服務端,你們可能會看到瀏覽器發送請求的文件的順序,若是你看了網頁的源代碼,你會發現web瀏覽器請求的順序正好是網頁中的書寫順序。我能夠將想要優先顯示的內容書寫到代碼考前的部位。

經過以上信息對於web開發者的建議:

  1. 將內容少的jscss直接嵌入網頁中,從而減小瀏覽器的對web服務器的請求次數。減小web服務器的負擔。

  2. 減小外部文件,將能夠合併的文件放到一個文件中,從而減小瀏覽器的對web服務器的請求次數。減小web服務器的負擔。(能夠選擇在發佈時合併文件,便於開發。一般是css和js文件)

  3. 見多個小圖表合併到一塊兒,統一請求文件。
  4. 將優先顯示的外部文件代碼書寫到前面。將不重要的文件放到最好請求。

  5. 同一個外部文件網頁只會請求一次。

若是針對本頁面來講,js爲空,css內容也不多,若是直接嵌入網頁頁面中,將會只有兩次web瀏覽器請求的。

 

代碼和測試主頁、makefile等文件:測試文件按文件地址

 

blog:http://blog.csdn.net/rentiansheng/article/details/8274489

相關文章
相關標籤/搜索