2010-10-30 63 views
0

場景:我有一個複雜的Asp.net應用程序,它通過HttpModules中編程構造的控件集合來提供各種單元。其中一些控件使用Asp.NET Ajax。減少ScriptResource.axd的根本技巧? (和可選的WebResource.axd)

在許多不同的單位,ScriptResource.axd平均傳輸大小〜27k。

我有一個天花板,只允許~3K。

肯定沒有時間用jQuery或手動js函數或whatnot來改進所有的Ajax功能。我們已經使用gzip編碼來實現.axd(未壓縮,更像是97k)。它通常被緩存,但這並不重要:我必須在首次請求的總轉移大小上達到一個硬性,低的外部限制...標記,腳本,圖像&全部歸納爲a-la螢火蟲。我一直在避免使用.axds,但實際上沒有其他地方可以刪除字節,並且我有24k的空間。

任何想法?我沉沒了嗎?

可能的方法:我還沒有使用Asp.NET 3.5 SP1的compositescript功能,但我想這樣做既節省了請求/響應報頭,我甚至不能確定頭數反對我。

我並不比一些過激以外的任何其他的想法,比如創建一個使用反射&一些字典找出js的功能響應濾波器實際上需要,只有那些發出。我可以緩存每個單元的結果列表,因爲我的響應時間上限也很低,而且我不認爲.axds會從一個請求變爲另一個請求。這是可行的嗎?任何其他想法? ...如果我用解決方案爲英雄買啤酒?

+1

在這個問題上你要浪費的時間和精力就是爲什麼我討厭這樣的無知,外在強加和僵硬的要求。祝你好運! – 2010-10-30 03:36:42

+0

@ andrew-barber:我聽到你的聲音,儘管一旦你開始在廣告沙盒中玩耍,這個天花板很常見,你需要將東西投放到廣告網絡中。當外部工程師分析您的有效負載時,Asp.NET Ajax創建的大量請求會讓您感到尷尬。:( – 2010-10-30 03:54:14

+0

因此,那些以創造無價值,帶寬支出爲名的人,爲了告訴人們修剪他們網站的有用的,通常緩存的內容,使它們擴大了10倍不需要(用戶)的內容似乎會加載更快?諷刺... – 2010-10-30 04:28:27

回答

1

反射可能是一個好主意。另外,請查找很少使用的零件,並找到另一種方式或在沒有該功能的情況下運行。此外,儘可能多地壓縮Ajax腳本(YUI Compressor適用於JavaScript)。

1

我總是第二次安德魯的評論。儘管從配置角度來看,您應該做兩件事。

Gzip(你已經完成了) 腳本模式=發佈(它將擺脫空白)。

除此之外,還有一個選項...那就是根本不使用Microsoft AJAX Library。您可以選擇編寫自己的Ajax化庫,並只使用您想要的東西。這個問題仍然存在......是值得痛苦的嗎?如果是這樣,那就去吧。請記住,編寫自己的圖書館的許多痛苦並不是寫起來很困難。真正頭疼的是要維護你寫的東西,在所有可用的平臺上測試它,並修復錯誤......重新測試......等等......你明白了!