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

9 ביוני 2009

 


ב – 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  זה יגרום שכל הדפים באתר יעברו את הכיווץ לפני שהם יורדים.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

3 תגובות

  1. Rotem Bloom9 ביוני 2009 ב 9:42

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

    הגב
  2. יואב מיכאלי9 ביוני 2009 ב 14:08

    שלמה – מזל טוב לפוסט ה101.
    שכחת לציין את השפעות השליליות של כיווץ הRequest.
    השפעה השלילית היא שימוש נוסף בCPU של השרת והאמת שגם של הקליינט.
    אז יש מקומות שנכון להכניס את זה ויש מקומות שלא. צריך לבדוק כל מקרה לגופו.
    בנוסף במידה וברצונך לשלב את זה באתר הייתי מציע לכתוב HttpModule שמבצע את הפעולה והלגדיר לו בקונפיגורציה באיזה דפים לטפל ובאיזה לא.

    הגב
  3. אליאור10 באוגוסט 2009 ב 16:55

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

    הגב