2010-12-16 66 views
1

我使用帶有MS SQL的Web Forms和Asp.Net。如何將Javascript作爲HTML代碼存儲在網站中

對於我的網站,我需要存儲這些代碼belove,也許其他人在未來:

  • 谷歌分析代碼
  • 一些JavaScript代碼
  • HTML頁腳和頁眉爲我的模板。

我需要這可能是集中式的解決方案,使用緩存,易於更新:

這裏我的想法,我想你的意見:

  • 01使用的數據庫有一個表(配置表),對於每個記錄(VARCHAR),這將允許以字符串形式存儲這些尖端代碼。
  • 02在特定的文件夾中使用簡單的文本文件,所以我可以將這些文件包含在我的代碼中。我可以使用FTP和NotePad更新代碼(這裏我關心緩存)。
  • 03使用Web.Conf文件。
  • 04使用文本文件和一個類將管理這些文件的內容存儲緩存。

任何想法?謝謝你的時間。

在這裏我想突出和有用的文章,這個話題:

http://nathanaeljones.com/153/performance-killer-disk-io/

+0

爲什麼不把它們放在局部視圖中?和主視圖中的html頁眉/頁腳。 – CodesInChaos 2010-12-16 18:58:03

+2

不要擔心磁盤IO。網絡IO呈指數級惡化。另外,緩存不是縮寫。 – SLaks 2010-12-16 19:07:43

+0

即使使用普通文件,您的示例也很可能會被操作系統磁盤緩存緩存。我知道一些磁盤有限的應用程序,但通常有多GB的數據庫。 – CodesInChaos 2010-12-16 19:57:06

回答

3

首先,關於鏈接到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」內容充分利用母版頁。您可以在應用程序級別啓用部分頁面緩存,該緩存將爲您處理所有緩存。

更新頁眉或頁腳內容時,只需重新部署該站點即可。

+0

感謝您的留言,我會考慮一下!我也認爲SSI不是一個很好的解決方案,可能有點過時,謝謝 – GibboK 2010-12-20 11:26:20

+0

如何在數據庫中添加HEADER和FOOTER並添加對Master Page的引用?通過這種方式,我可以在不重新部署網站的情況下更新網站並擁有更易於管理的網站。你認爲我可以用這種方式表現緩慢嗎?再次感謝您的時間 – GibboK 2010-12-20 11:30:42

+0

@GIbboK:將頁眉/頁腳放在數據庫中就好了。這些可以很容易地被你的數據訪問層緩存;也許會在20分鐘左右到期。 – NotMe 2010-12-20 14:18:54

0

Store中的頁眉和頁腳文件,並使用Server Side Includes。 某些Web服務器(IIS 6.0)可能允許您將文檔頁腳添加到所有頁面。

將您的Javascript存儲在文件中並在您的頁面中使用。這將允許緩存並提高頁面性能。

+0

SSI和CACHE呢?是否存儲在CACHE中?更新怎麼樣?如果我需要更改標題,我是否需要在IIS中登錄?謝謝 – GibboK 2010-12-16 17:58:50

+0

@GIbboK - 請參閱http://flylib.com/books/en/3.202.1.31/1/「支持內容到期」。 – DaveB 2010-12-23 16:37:53

相關問題