2013-07-24 62 views
2

我有一個共享託管計劃,並正在設計一個包含幻燈片的單頁網站。瀏覽器通常會限制同時向單個域請求的數量。我不希望有很多流量,但我希望我收到的流量能夠快速加載。我可能會添加無限的子域名,但這是否真的影響客戶的速度,因爲他們可能是唯一一個輪詢我的服務器,並且所有子域指向同一個處理器?我已經爲每個圖像創建了兩個版本,一個用於幻燈片放映,另一個用於通過AJAX請求提供更大的格式,但延遲時間對我的口味而言仍然有點長。有什麼建議麼?從共享託管計劃處理大量圖像的最佳方式是什麼?

回答

3

在您設計一堆子域以最大化並行連接之前,您應該對您的頁面加載行爲進行概要分析,以便知道大部分時間都用在哪裏。首先做出更容易和更有價值的優化。

有幾個工具可以幫助這一點,使用所有這些:

一些重要的因素看都是高速緩存優化和圖像壓縮。

如果您已經完成了所有這些工作,並且您確定要使用多個(子)域,那麼我會建議使用內容交付網絡(CDN)而不是託管靜態文件(圖像)相同的共享服務器。你可能會考慮Amazon's CloudFront service。這是非常容易建立,並且價格合理。

最後,不要被太多(子)域帶走,因爲每個主機名都需要單獨的DNS查找;找到一個平衡點。

+0

我已經授予您賞金。你提供的答案雖然是唯一的,但是相當完整,爲此我感謝你。我確實有我的問題的一部分,我可能沒有問好。我的直覺是否正確:共享計劃上的多個子域不會顯着提高速度,因爲它們都查詢相同的服務器/處理器,並且服務器的映像服務時間大於請求的典型延遲時間?這就是說,我認爲你的CDN評論是我正在尋找的答案。 – buck54321

+0

這取決於硬件和軟件,但現代服務器能夠並行處理多個請求。因此,您不一定會遇到一次一次請求瓶頸。例如,常見的配置是在prefork模式下運行的Apache HTTPD,它爲每個請求分配不同的進程。如果有多個核心,每個進程可以並行運行。但是當然可能會有磁盤I/O等瓶頸。真的,每個場景都不同,但實際上可以從單個服務器獲得卓越的吞吐量。無論如何,CDN是一個好主意。 –

+0

關於您從單個頁面提供多個圖像的問題。關鍵的瓶頸可能是瀏覽器的每個主機的連接數限制。因此,即使子域是從同一臺服務器提供的,您實際上可能會看到使用多個子域的重大改進。通過查看資源加載瀑布圖(如我鏈接的工具生成的瀑布圖),可以更容易地進行可視化。 –

相關問題