DCSIMG
כיווץ הקובץ שיורד ללקוח באמצעות - Response.Filter - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

כיווץ הקובץ שיורד ללקוח באמצעות - Response.Filter

 

ב - UserGroup האחרון של קבוצת ה - Web, דיבר דן אמיגה על החידושים ב- Asp.Net 4.0
 
 
אני לא זוכר באיזה הקשר הוא הראה כיצד להקטין את גודל ה - Response שיורד, כי אפשר לעשות את זה גם בגרסאות קודמות.
 
כל מה שאתם צריכים לעשות, זה להוסיף את שני שורות הקוד:
 

    Response.Filter = new DeflateStream(Response.Filter, CompressionMode.Compress);

 

    Response.AppendHeader("Content-Encoding", "deflate");

 
השורה הראשונה עוטפת את ה Stream של ה - Response עם DeflateStream, (שמכווץ אותו)
 
השורה השנייה מסבירה לדפדפן איך לקרוא את הקובץ.
 
ניסית את זה על דף ששוקל 15 MB, ואחרי הכיווץ הקובץ שקל רק 11 MB,
 
(הייתי מראה לכם צילום מסך של ה -fiddler, אבל יש ברגע באג באתר שלא נותן לעלות תמונות)
 
 
מה שיהיה יותר חכם, זה לכתוב את שני שורות הקוד ב - global.asax במתודה Application_BeginRequest  זה יגרום שכל הדפים באתר יעברו את הכיווץ לפני שהם יורדים.

תוכן התגובה

Rotem Bloom כתב/ה:

תודה על הטיפ. בדקת אם זה עובד בכל הדפדפנים?

# June 9, 2009 9:42 AM

יואב מיכאלי כתב/ה:

שלמה - מזל טוב לפוסט ה101.

שכחת לציין את השפעות השליליות של כיווץ הRequest.

השפעה השלילית היא שימוש נוסף בCPU של השרת והאמת שגם של הקליינט.

אז יש מקומות שנכון להכניס את זה ויש מקומות שלא. צריך לבדוק כל מקרה לגופו.

בנוסף במידה וברצונך לשלב את זה באתר הייתי מציע לכתוב HttpModule שמבצע את הפעולה והלגדיר לו בקונפיגורציה באיזה דפים לטפל ובאיזה לא.

# June 9, 2009 2:08 PM

אליאור כתב/ה:

זה לא רק ב 4.0 יש את זה גם בגירסאות קודמות..

אני אישית משתמש בזה ללקוחות ש"חוסכים" בתוכניות אחסון בשביל לחסוך בתעבורה.. התוצאות דרמטיות.. הביצועים אומנם יורדים טיפה, אבל לפחות הלקוח מרוצה.

# August 10, 2009 4:55 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 8 and 5 and type the answer here:


Enter the numbers above: