Back to "ViewState pakkaus BZip2...myöhempi prototyyppi..."

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

ASP.NET Imported mostlylucidcouk Performance

ViewState pakkaus BZip2...myöhempi prototyyppi...

Sunday, 29 February 2004

Vain ensimmäinen puukotus tässä, käyttää joitakin kursseja käytin toisessa projektissa (määritän pakkauskoodin myöhemmin...Uskon, että sain sen Sharpziplib jutut - joillakin muokkauksilla - laitan kommenttiotsikot myöhemmin takaisin noudattamaan Lisenssi-juttuja - juuri nyt se on vain esimerkki) todellinen koodi näkymätilan tiivistämiseksi on erittäin yksinkertainen:

using System;
using System.Web.UI;
using System.IO;
namespace ViewStateCompression
{
    /// 
    /// Summary description for CompressedVSBasePage.
    /// 
    public class CompressedVSBasePage :System.Web.UI.Page
    {
        private LosFormatter  _formatter = new LosFormatter();
        protected override void SavePageStateToPersistenceMedium(object viewState)
        {
            StringWriter sw = new StringWriter();
            _formatter.Serialize(sw, viewState);
            ComDePress cmp = new ComDePress();
            string outStr = cmp.Compress(sw.ToString());
            Page.RegisterHiddenField("__COMPRESSEDVIEWSTATE",outStr);
        }
        protected override object LoadPageStateFromPersistenceMedium()
        {
            string vsString = Request.Form["__COMPRESSEDVIEWSTATE"];
            string outStr = new ComDePress().DeCompress(vsString);
            return _formatter.Deserialize(outStr);
        }
    }
}

Käyttääksesi sitä, voit vain periä tämän sivun normaalin järjestelmän sijaan.Web.UI.Page. Menetät ilmeisesti osan tavallisista Viewstate-toiminnoista, kuten salauksen - mutta näiden pitäisi olla helppoja sijoittaa takaisin...Näen tällä hetkellä melko suuria säästöjä ViewState-koossa, kun käytät tätä - BZip2-kompressointia - koska se on koodi, josta valehtelin..., kokeile sitä. Kaikki kommentit / ehdotukset ovat, kuten aina, arvostettuja.

Olen tehnyt testiprojekti tämän kanssa leikittelyyn , se on VSNET 2003, siinä on kaikki tarvittava (mukaan lukien pakkaustarvikkeet).

PÄIVITYS: Olen vain tehnyt joitakin testejä tällä...esimerkkinä, käyttäen DataSet asuttu "Select * Northwind DB:n tilauksesta sidottuna oletukseen DataGrid (valitsin tämän olevan kaikkein porsain mahdollinen...), siirryn mielestäni 659984 tavusta 52080 tavuun asti. Säästö on noin 92 prosenttia - mikä on mielestäni aika vaikuttavaa! Olen varma, että tässä on joitakin haittoja (lukuun ottamatta muutamaa lisäsykliä, joita vaaditaan paineluun) - mutta onko olemassa mitään todellista syytä, miksi MS ei anna pakkausvaihtoehtoa ViewStatelle ulos laatikosta - kuka tahansa???

PÄIVITYS: Selvä, niille, jotka ovat arvostelleet koodia...tämä on prototyyppi - vain testatakseni ideaa, aion leikkiä tällä jossain vaiheessa hieman enemmän ja aion katsoa mukaan joitakin hauskoja ominaisuuksia, kuten Denis Bauerin ViewState-katsoja Sisäänrakennettu, eri pakkausjärjestelmät, eri salaus - myös uskomattoman tehokas Kaksikala- lyhyesti sanottuna se on lelu, jota katson ja laajennan nykyistä ViewState-toteutusta.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.