首先,關於鏈接到Nathanael Jones博客的鏈接,雖然磁盤IO比內存操作慢得多,但大多數網站並不是磁盤IO綁定的,他的大部分解決方案都是非常坦率的沒有教養的廢話。
一般而言,只有極少數情況下,您將成爲DISK io綁定。首先是數據庫服務器本身。如果它沒有足夠的RAM來將數據庫的相關部分保存在內存中,那麼THAT服務器的磁盤速度至關重要;特別是在高交易情況下。
其次,如果您的應用程序直接讀取和寫入大量文件,則可以將磁盤IO綁定。很少有應用可以做到這一點。我不計算應用程序的.aspx或.html文件,因爲這些文件可以由現有框架和IIS進行緩存。
基本上,只是忽略他。
整個文件系統到數據庫同步想法作爲提高性能的方法對於大約99.999%的站點來說沒有任何價值。如果沒有其他數據庫應該將文件推送到Web服務器文件系統,而不是反過來。在20年的發展過程中,我已經看到了完全需要這一點的1個站點。他們每天有數百萬的網頁瀏覽量。另外,他在網絡上進行數據庫調用的速度比從本地文件加載等量數據要快。
接下來,我們真正綁定的實際區域是通過網絡將數據發送到客戶端瀏覽器。這永遠比從磁盤讀取文件慢;即使沒有交通線路。硬盤驅動器的數據傳輸速度比網卡要快得多。更進一步;現代硬盤驅動器的速度比您的互聯網連接快幾個數量級。您可以通過提高性能來做最好的事情就是限制單個頁面加載所需的連接請求數量。這裏的優化意味着有1個CSS文件,而不是20;只有幾個.js文件引用,而不是100;並在可行的情況下將圖形合併爲精靈。由於TCP的工作原理,傳輸1個大文件比100個小文件更快。
也許在一個超載的共享服務器上,你可能可能有問題。但實際情況是,重載的共享服務器在磁盤隊列長度超出控制範圍之前很久就會發生網絡擁塞。
讓我們看看你的實際問題。
javascript項目有兩個首選位置:1.作爲Web服務器上的.js文件或2.嵌入到母版頁中。只需做選項1,它們將被Web服務器緩存。此外,它們將被客戶端瀏覽器緩存,這意味着您不必
對於頁眉和頁腳,其代碼應位於母版頁中。不要做服務器端包含,這只是使事情複雜化。建立一個正常的.net網站,爲您的「chrome」內容充分利用母版頁。您可以在應用程序級別啓用部分頁面緩存,該緩存將爲您處理所有緩存。
更新頁眉或頁腳內容時,只需重新部署該站點即可。
爲什麼不把它們放在局部視圖中?和主視圖中的html頁眉/頁腳。 – CodesInChaos 2010-12-16 18:58:03
不要擔心磁盤IO。網絡IO呈指數級惡化。另外,緩存不是縮寫。 – SLaks 2010-12-16 19:07:43
即使使用普通文件,您的示例也很可能會被操作系統磁盤緩存緩存。我知道一些磁盤有限的應用程序,但通常有多GB的數據庫。 – CodesInChaos 2010-12-16 19:57:06